这一切都是从我尝试打开文件时 Visual Studio Code 崩溃开始的。排除故障后,我似乎将其归咎于 MIME 问题。现在我无法理解这种行为。
基本上我的图像处理程序停止工作。我可以创建一个新的处理程序来使用
xdg-mime
,但是当我查询它或尝试使用 opener 时,它无法选择正确的处理程序。
根据手册,
$XDG_CONFIG_HOME/mimeapps.list
应该优先。该文件具有正确的格式。 xdg-mime 似乎可以写入它,但由于某种原因无法查询它。
~ main• ❱ env XDG_UTILS_DEBUG_LEVEL=2 xdg-mime default feh.desktop image/jpeg
make_default_kde: No kde runtime detected
make_default_generic feh.desktop image/jpeg
Updating /home/om/.config/mimeapps.list
~ main• ❱ cat $XDG_CONFIG_HOME/mimeapps.list | grep image/jpeg
image/jpeg=feh.desktop
xdg-mime query
没有看到它,尽管它首先检查了正确的文件~ main• ❱ env XDG_UTILS_DEBUG_LEVEL=2 xdg-mime query default image/jpeg
Checking /home/om/.config/mimeapps.list
Checking /home/om/.local/share/applications/mimeapps.list
Checking /home/om/.local/share/applications/mimeapps.list
Checking /home/om/.local/share/applications/defaults.list and /home/om/.local/share/applications/mimeinfo.cache
Checking /home/om/.local/share/applications/defaults.list and /home/om/.local/share/applications/mimeinfo.cache
Checking /home/om/.local/share/applications/defaults.list and /home/om/.local/share/applications/mimeinfo.cache
Checking /home/om/.local/share/applications/defaults.list and /home/om/.local/share/applications/mimeinfo.cache
在这种情况下,问题出在环境变量上。我意识到
/home/om/.local/share/applications/defaults.list
覆盖了 /home/om/.config/mimeapps.list
。
在我将
defaults.list
符号链接到 mimeapps.list
后,它解决了问题,但这看起来有点老套。
后来我发现我将
XDG_DATA_DIRS
与 XDG_DATA_HOME
混合在一起,即:XDG_DATA_DIRS=$HOME/.local/share
,我怀疑这将系统范围的 MIME 列表与用户特定的 MIME 列表混淆了。在我取消设置 XDG_DATA_DIRS
并将 XDG_DATA_HOME
设置为 $HOME/.local/share
后,xdg-mime
不再查找其他文件:
~ main• ❱ env XDG_UTILS_DEBUG_LEVEL=2 xdg-mime query default image/jpeg
Checking /home/om/.config/mimeapps.list
feh.desktop
参考:basedir-spec