Answers:
xdg-open是独立于桌面的工具,用于配置用户的默认应用程序。许多应用程序在内部调用xdg-open命令。在桌面环境(例如GNOME,KDE或Xfce)中,xdg-open只是将参数传递给那些桌面环境的文件打开器应用程序(例如gvfs-open,kde-open或exo-open)。这意味着关联由桌面环境决定。如果未检测到桌面环境(例如,运行诸如Openbox之类的独立窗口管理器),则xdg-open将使用其自己的配置文件。
特定于您的问题,您可以尝试设置与png文件关联的默认应用程序:
xdg-mime default <ristretto.desktop> image/png
您需要找出Ristretto桌面文件的确切名称。之后,您可以使用以下命令进行检查:
xdg-mime query default image/png
xdg-mime query default image/png
返回wine-extension-png.desktop
:-)
@Ivan可能会发生这种情况,因为在请求默认应用程序时您没有提供正确的文件类型。重要的是xdg如何调用该特定文件类型。可以通过运行轻松找到
xdg-mime query filetype example.png
举例来说,如果我使用计算机上的特定png文件执行此操作,它将返回image/x-apple-ios-png
。确定了实际的文件类型后,即可运行
xdg-mime query default <new filetype>
并获取xdg用于此特定文件类型的应用程序。如果没有为该文件类型定义应用程序,则xdg-open检查文件/etc/debian_version
是否可用,如果可以,它将启动run-mailcap
(与xdg-open非常相似)并尝试查找一个程序来打开文件。
仅当这也失败时,xdg-open才会要求用户定义一个程序来打开文件。