1 votes

L'erreur de parssing du thème d'Evince Document Viewer provoque l'invisibilité de l'interface graphique lorsque le thème GTK-3 personnalisé se trouve dans un lien symbolique.

J'obtiens l'erreur suivante en remplaçant le .themes dans le dossier $HOME avec un lien symbolique pointant vers le contenu d'un lecteur monté :

(evince:28717): Gtk-WARNING **: 13:21:16.921: Theme parsing error: 
gtk.css:1:0: Failed to import: 
Error opening file $HOME/.themes/Flat-Remix-GTK-Dark-Solid/gtk-3.0/gtk.css: Permission denied

(evince:31282): Gtk-WARNING **: 13:32:54.277: 
Error loading theme icon 'dialog-password' for stock: 
Icon 'dialog-password' not present in theme Flat-Remix-Dark

Le résultat est une interface graphique totalement invisible, comme celle décrite ci-dessous. aquí

Les solutions proposées dans le problème GitHub ont été résolues avec les nouvelles versions, et il convient également de mentionner qu'Evince est installé via Apt, et non Snap.

L'interface graphique revient si je remplace le lien symbolique par le contenu du fichier .themes du dossier de $HOME . Le fait que le dossier soit un lien symbolique ne semble pas affecter les autres applications que j'ai vues jusqu'à présent.

2voto

Smurfz87 Points 384

Donc, après une chasse effrénée, j'ai réussi à trouver cette question sur le GitLab d'Evince. Le problème est que les fichiers se trouvent dans un emplacement non approuvé par AppArmor et qu'Evince ne peut donc pas y accéder.

Pour résoudre le problème et continuer à utiliser les liens symboliques pour les fichiers .themes y .icons dossiers, la réponse rapide est d'ajouter les lignes suivantes à /etc/apparmor.d/usr.bin.evince :

  owner {path-to-icons-folder}/.icons/** r,
  owner {path-to-themes-folder}/.themes/** r,

La réponse la plus longue :

faites d'abord une sauvegarde du fichier /usr/apparmor.d/usr.bin.evince

installer apparmor-utils :

sudo apt install apparmor-utils

exécuter l'utilitaire d'analyse d'AppArmor :

sudo aa-genprof /usr/bin/evince

Pendant que l'utilitaire est en cours d'exécution, essayez d'ouvrir un fichier PDF en utilisant Evince dans une autre fenêtre de terminal :

evince {name-of-your-pdf.pdf}

Maintenant, retournez à la fenêtre du terminal d'origine et appuyez sur s pour "Scan". L'utilitaire analysera les journaux des tentatives d'autorisation refusées pour Evince par AppArmor et vous demandera si vous souhaitez autoriser Evince à y accéder à l'avenir. Acceptez les suggestions.

Maintenant, si vous essayez de lancer Evince à nouveau, vous remarquerez un tas de nouvelles erreurs de permission. Vous pouvez continuer à les ajouter jusqu'à ce que les erreurs cessent d'apparaître, mais je préfère que mes fichiers de configuration soient un peu moins désordonnés. /usr/apparmor.d/usr.bin.evince fichier. Localisez les deux entrées ajoutées pendant l'analyse, puis éditez-les et changez l'URL du fichier en :

  owner {path-to-icons-folder}/.icons/** r,
  owner {path-to-themes-folder}/.themes/** r,

Notez que cela donne à Evince la permission d'accéder à tous les fichiers du dossier et des sous-répertoires, qu'il pourrait potentiellement modifier, donc gardez une portée réduite.

Après avoir sauvegardé le fichier, demandez à l'utilitaire AppArmor d'effectuer une nouvelle analyse. Ceci afin que la configuration d'AppArmor soit mise à jour. Maintenant, Evince devrait avoir les permissions requises et montrer son interface graphique dans toute sa splendeur lors de la prochaine ouverture d'un PDF.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X