如何在 xdg-open / mimeopen 上设置未知文件的默认应用程序?

如何在 xdg-open / mimeopen 上设置未知文件的默认应用程序?

在我的 Lubuntu (18.10) 上,xdg-open当文件未与任何应用程序关联时启动 VLC 播放器。

$ xdg-mime query filetype jquery.js
application/javascript
$ xdg-mime query default application/javascript # no output
$ xdg-open jquery.js
Error: no "view" mailcap rules found for type "application/javascript"
Opening "/tmp/jquery.js" with VLC media player  (application/javascript)

对于某些文件,它会启动 Calibre 的电子书查看器(例如 .rb)。


编辑我深入研究xdg-open并发现它执行以下命令:

  1. xdg-mime query filename "$file"使用和检查文件类型xdg-mime query default $filetype
  2. run-mailcap --action=view "$file"
  3. mimeopen -L -n "$file"

问题出在mimeopen上。

那么我怎样才能改变mimeopen来打开任何未知文件使用featherpad,或特定的应用程序?换句话说,如果 mimeopen 找不到任何合适的应用程序,我想设置默认后备应用程序。

答案1

mimeopen将未知文件视为text/plainapplication/octet-stream

要设置默认应用程序,请使用-d选项运行 mimeopen。由于我找不到指定 mimetype 的选项,因此您需要首先创建虚拟文件。

touch text.txt # for text/plain
mimeopen -d text.txt # and choose your favorite app

echo -e \\0 > data.dat # for application/octet-stream
mimeopen -d -M data.dat

或编辑“~/.config/mimeapps.list”。

[Default Applications]
text/plain=featherpad.desktop;  
application/octet-stream=firefox.desktop;

mimeopen,附带文件-MimeInfo,尝试寻找应用程序家长拟态。例如,如果文件类型以“text/”开头,则它的父文件类型为“text/plain”。所有文件类型都继承“application/octet-stream”。

在我的环境中的 mimeopen 上,最“适合”八位字节流的应用程序是 VLC Player,对于文本/纯文本,它是 Calibre 的电子书查看器。这就是使用这些应用程序打开某些文件的原因。

答案2

其中man xdg-mime有一个选项:xdg-mime default application mimetype(s)设置默认应用程序。您可以使用

xdg-mime default featherpad.desktop application/javascript

设为featherpad.desktop默认编辑器来打开application/javascript.

/usr/share/applications/或者,您可以在目录下找到一个文件,就像default.list在我的例子中取决于文件管理器一样gnome-mimeapps.list(我有 gnome DE 和 nautilus FM)。您可以编辑此文件以启动默认应用程序。

相关内容