在我的 Lubuntu (18.10) 上,xdg-open
当文件未与任何应用程序关联时启动 VLC Player。
$ 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"
使用and检查文件类型xdg-mime query default $filetype
run-mailcap --action=view "$file"
mimeopen -L -n "$file"
问题在于mimeopen。
那么如何更改 mimeopen 以使用 featherpad 或特定应用程序打开任何未知文件?换句话说,如果 mimeopen 找不到任何合适的应用程序,我想设置默认的后备应用程序。
mimeopen
将未知文件视为text/plain
或application/octet-stream
。要设置默认应用程序,请使用选项运行 mimeopen
-d
。由于我找不到指定 mimetype 的选项,因此您首先需要创建虚拟文件。或编辑“~/.config/mimeapps.list”。
mimeopen
随File-MimeInfo 一起提供,尝试查找具有父mimytypes 的应用程序。例如,如果文件类型以“text/”开头,则它的父级为“text/plain”。并且所有文件类型都继承“application/octet-stream”。在我的环境中的 mimeopen 上,八位字节流最“合适”的应用程序是 VLC Player,而对于 text/plain,它是 Calibre 的 E-book Viewer。这就是使用这些应用程序打开某些文件的原因。
从
man xdg-mime
那里有一个选项:xdg-mime default application mimetype(s)
设置默认应用程序。您可以使用作为
featherpad.desktop
打开文件的默认编辑器,如application/javascript
.或者,您可以在
/usr/share/applications/
目录下找到一个文件,例如default.list
在我的情况下取决于文件管理器gnome-mimeapps.list
(我有 gnome DE 和 nautilus FM)。您可以编辑此文件以启动默认应用程序。