如何在 xdg-open / mimeopen 上為未知文件設置預設應用程序?
在我的 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 的選項,因此您首先需要創建虛擬文件。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
隨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)
設置預設應用程序。您可以使用xdg-mime default featherpad.desktop application/javascript
作為
featherpad.desktop
打開文件的預設編輯器,如application/javascript
.或者,您可以在
/usr/share/applications/
目錄下找到一個文件,例如default.list
在我的情況下取決於文件管理器gnome-mimeapps.list
(我有 gnome DE 和 nautilus FM)。您可以編輯此文件以啟動預設應用程序。