在我的 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
并发现它执行以下命令:
xdg-mime query filename "$file"
使用和检查文件类型xdg-mime query default $filetype
run-mailcap --action=view "$file"
mimeopen -L -n "$file"
问题出在mimeopen上。
那么我怎样才能改变mimeopen来打开任何未知文件使用featherpad,或特定的应用程序?换句话说,如果 mimeopen 找不到任何合适的应用程序,我想设置默认后备应用程序。
答案1
mimeopen
将未知文件视为text/plain
或application/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)。您可以编辑此文件以启动默认应用程序。