我在使用 libreoffice 时遇到了一些权限问题,但我没有技术能力去理解。
问题
当我直接从终端运行 localc 时,它会进入循环:程序在打开文件时立即崩溃,然后再次尝试,询问我是否要恢复刚刚在尝试打开时崩溃的文件。它一直这样。
loffice /some/file.csv
当我使用 sudo 打开文件时,文件可以正常打开 sudo loffice /some/file.csv
有趣的是还如果我从 pcmanfm 等文件浏览器打开它,它就可以正常打开。我还有一个“rofi -dmenu”,我用它来打开脚本列表和一些打开的 csv 文件 - 它也运行正常。
背景
我不确定这个问题是什么时候开始发生的——这几周很忙——但我认为这可能与我更改了打开不同文件类型的默认程序有关。我是这样操作的:
首先,我将 mimeapps.list 复制到我的 Dropbox,然后将其符号链接到配置文件夹中的位置,如下所示:
ln -s ~/Dropbox/dotfiles/mimeapps.list /home/my_user/.config/mimeapps.list
在更改了一些默认设置后(由于某种原因,电子阅读器 Calibre 是打开内容的默认设置,因此我将其更改为我选择的编辑器),我执行以下操作:
sudo -A update-desktop-database
我不知道这是否会搞砸什么,但似乎是有可能的。
在过去的几个小时里,我一直在尝试了解发生了什么,列出系统上与 mimetypes 相关的不同文件,以查看权限是否存在问题,但我无法弄清楚。如能得到帮助,我将不胜感激。
我正在使用带有 i3wm 的 Lubuntu 20.04。
附言
这是打开 term 时的输出
(soffice:25195): Gtk-WARNING **: 13:53:58.639: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.
**
Gtk:ERROR:../../../../gtk/gtkiconhelper.c:494:ensure_surface_for_gicon: assertion failed (error == NULL): Failed to load /usr/share/icons/gnome/16x16/status/image-missing.png: Unrecognized image file format (gdk-pixbuf-error-quark, 3)
Bail out! Gtk:ERROR:../../../../gtk/gtkiconhelper.c:494:ensure_surface_for_gicon: assertion failed (error == NULL): Failed to load /usr/share/icons/gnome/16x16/status/image-missing.png: Unrecognized image file format (gdk-pixbuf-error-quark, 3)
Application Error
答案1
我发现的解决方法是通过 i3 启动 localc,这样 i3 就可以启动程序了。我猜这类似于使用 sudo,因为它可以解决权限问题。但我不喜欢将其作为“解决方案”,因为它回避了问题而不是解决问题。
i3-msg 'exec --no-startup-id localc ~/some-file.csv'