Set default applications for opening x file type on Linux desktop using xdg-mime.
有時候同一種類型的程式裝太多,就會在開啟檔案時出現預設程式錯亂的問題。
比如你在Ubuntu KDE的檔案管理器點選MP4,跳出來的應該是「VLC播放器」
若是再裝了MPV播放器、Haruna播放器、神龍播放器等等,新的播放器可能就會建立檔案關聯,覆蓋寫你原有的設定,導致下次點MP4的時候跳出其他影片播放器。
這時你要手動按右鍵設定預設程式,重新指定開啟MP4的程式為VLC。
這些都還好處理,但如果是那些沒有圖形界面能指定的畫面呢?例如在Firefox瀏覽器的下載列表開啟檔案,沒有讓你選擇應用程式的餘地,可能會開到錯誤的檔案管理器,要怎修改呢?
這個時候你就要了解Linux桌面環境是如何確定開啟檔案的預設程式的。不論什麼桌面環境,都是遵照FreeDesktop制定的「XDG MIME」的標準,用於告訴系統,什麼副檔名要用什麼程式開。XDG MIME的設定檔主要存在~/.config/mimeapps.list
,該檔案對整個系統的程式都有效。
下面Ivon講解如何調整Linux的預設應用程式。
1. 用圖形界面修改預設開啟程式#
在圖形界面做的修改通常會寫入到~/.config/mimeapps.list
。
GNOME#
開啟系統設定 → 預設應用程式
GNOME圖形界面能調整的預設程式不多,只能指定幾款,其他要手動用xdg-mime指令編輯。
KDE Plasma#
開啟系統設定 → 應用程式 → 檔案關聯
KDE的調整選項比較細緻,可以詳細針對檔案類型個別設定。
2. 用指令修改預設開啟程式#
xdg-mime
指令用於修改預設程式,而實際告訴桌面環境要執行哪個程式的指令是為xdg-open
。部份程式會透過執行xdg-open
指令來達到符合桌面環境預設應用程式的效果,而非寫死只執行特定路徑的二進位檔。
xdg-mime使用網際網路媒體類型(MIME)來區分檔案類型,FreeDesktop有維護一份 XML資料庫,定義已知的檔案類型,通常該資料庫會裝在Linux系統的
/usr/share/mime/
目錄。使用者可以自定義新檔案類型。使用xdg-mime指令,確認你的檔案是什麼MIME類型
xdg-mime query filetype "/home/user/Videos/video.mp4"
例如我這裡要修改MP4開啟的預設程式,他的MIME類型叫做
video/mp4
列出開啟MP4檔案的預設程式,它列出的應該是Desktop Entry的名稱,而非二進位檔路徑。
xdg-mime query default video/mp4
# 範例輸出:
mpv.desktop
- 到
/usr/share/applications
尋找你要使用的程式的Desktop Entry名稱,例如VLC是為vlc.desktop
ls /usr/share/applications
- 修改開啟MP4的預設程式為VLC
xdg-mime default vlc.desktop video/mp4
指令所作的修改會寫入到
~/.config/mimeapps.list
,你可以手動編輯該檔案。開啟你的檔案管理員,試試預設程式有無變更吧!
你也可以用
xdg-open
指令來開啟檔案,測試預設應用程式的行為是否正確:
xdg-open "/home/user/Videos/video.mp4"