.themes
将文件夹替换为$HOME
指向已安装驱动器上内容的符号链接时出现以下错误:
(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
结果是一个完全不可见的 GUI,如此处所述
GitHub 问题中提供的解决方案已在新版本中得到解决,另外值得一提的是 Evince 是通过 Apt 而不是 Snap 安装的。
如果我将符号链接替换为.themes
文件夹中的内容,GUI 将返回$HOME
。作为符号链接的文件夹似乎不会影响我迄今为止看到的任何其他应用程序。
因此,经过一番疯狂的追逐后,我设法在 Evince 的 GitLab 上找到了这个问题。问题是文件位于 AppArmor 未批准的位置,因此 Evince 被阻止访问它们。
.themes
要解决此问题并继续对和文件夹使用符号链接.icons
,快速回答是将以下行添加到/etc/apparmor.d/usr.bin.evince
:更长的答案:
首先备份文件
/usr/apparmor.d/usr.bin.evince
安装 apparmor-utils:
运行 AppArmor 的扫描实用程序:
在实用程序运行时,尝试在另一个终端窗口中使用 Evince 打开 PDF 文件:
现在回到原来的终端窗口并按下
s
“扫描”。该实用程序将扫描日志以查找 AppArmor 对 Evince 的拒绝权限尝试,并询问您是否要允许 Evince 将来访问这些权限。接受建议。现在,如果您再次尝试运行 Evince,您会注意到一大堆新的权限错误。您可以继续添加这些,直到错误停止显示,但我更喜欢我的配置文件稍微不那么混乱,所以我建议编辑
/usr/apparmor.d/usr.bin.evince
文件。找到扫描期间添加的两个条目,然后对其进行编辑并将文件 URL 更改为:请注意,这会授予 Evince 对文件夹和子目录中所有文件的权限,这些文件可能会更改,因此请保持较小的范围。
保存文件后,告诉 AppArmor 实用程序再次扫描。这是为了更新 AppArmor 的配置。现在,Evince 应该具有所需的权限,并在您下次打开 PDF 时以令人惊叹的荣耀显示它的 GUI。