xdg-open 打开与 xdg-mime 查询指定的应用程序不同的应用程序

Tim*_*Tim 9 debian xdg-open

我在没有桌面环境的情况下运行 Debian Jessie(我使用平铺窗口管理器 i3)并且喜欢使用xdg-open首选应用程序快速打开文件。不过,我在为 PDF 文件设置首选应用程序时遇到了一个持续的问题。简而言之,这是我的问题:

$ xdg-mime query filetype ~/Downloads/document.pdf
application/pdf

$ xdg-mime query default application/pdf
/usr/share/applications/qpdfview.desktop

$ xdg-open ~/Downloads/document.pdf
[opens gimp!]
Run Code Online (Sandbox Code Playgroud)

任何想法都将不胜感激 - 这已经困扰了我大约一年。我曾经设法(暂时)修复它的唯一方法是直接编辑mimeinfo.cachegimpapplication/pdf记录中删除对 的引用。

是的,/usr/share/applications/qpdfview.desktop存在并包含qpdfview二进制文件的正确位置。(确实,这个 .desktop 文件在我手动编辑时使用mimeinfo.cache。)

slm*_*slm 9

您可以尝试使用mimeopen.

例子

$ mimeopen -d ~/test.pdf

Please choose a default application for files of type application/pdf

    1) E-book Viewer  (calibre-ebook-viewer)
    2) Document Viewer  (evince)
    3) Xournal  (xournal)
    4) GNU Image Manipulation Program  (gimp)
    5) Xpdf PDF Viewer  (xpdf)
    6) Print Preview  (evince-previewer)
    7) Inkscape  (inkscape)
    8) calibre  (calibre-gui)
    9) Other...

use application #2
Opening "/home/saml/Downloads/test.pdf" with Document Viewer  (application/pdf)
Run Code Online (Sandbox Code Playgroud)

这导致我的 PDF 文件test.pdf在 Evince 中打开。从这一点开始,Evince 是我使用xdg-open.

参考

  • 为什么这行得通,但使用 `xdg-mime` 设置默认应用程序不起作用?这是那种让我发疯的东西!为了详细说明,我尝试了`xdg-mime default /usr/share/applications/evince.desktop application/pdf`,并且`xdg-mime query filetype /some/file.pdf`确认设置了默认应用程序,但是`xdg -open` 完全忽略了我的偏好,而是打开了打印预览。 (3认同)
  • @Hubro `xdg-open` 是一个 shell 脚本包装器,用于各种桌面环境的 opener 命令。我想你可以尝试运行`sh -x $(which xdg-open) /some/file.pdf`,找出调用了哪个实际的opener命令,然后希望找出下一个搜索的位置...... (3认同)
  • 谢谢!我仍然不知道为什么这个问题首先存在,但至少现在默认值似乎在 apt-get dist-upgrade 之后仍然存在。 (2认同)

归档时间:

查看次数:

3015 次

最近记录:

11 年,6 月 前