防止應用程式更改文件關聯

防止應用程式更改文件關聯

我最近透過以下方式在 Kubuntu 20.04 上安裝了 Skype折斷我發現它將自己添加到與以下應用程式關聯的應用程式清單的末尾系統上的每種檔案類型!當然,這意味著對於系統識別的許多目前沒有與其關聯的應用程式或未知檔案類型的檔案類型,Skype 成為預設應用程式。

我發現撤消此操作的唯一實用方法(實際的意味著不需要手動檢查每種文件類型)是完全卸載 Skype。

有沒有辦法阻止應用程式執行此操作?或者至少,有沒有簡單的方法可以在事後消除這種情況?

此範例特定於 Skype折斷,但我更喜歡一個通用的答案(即,這適用於折斷或一般情況)(如果存在)。我見過的與文件類型關聯的類似問題相關的唯一答案是特定於應用程式的,因此在這種情況下沒有幫助。

系統

  • 作業系統:Kubuntu 20.04
  • KDE 等離子版本:5.18.8
  • KDE 框架版本:5.68.0
  • Qt版本:5.12.8
  • 核心版本:5.15.0-46-generic

答案1

我不久前也有過同樣的經歷並尋找解決方案,所以這就是我所做的,到目前為止效果很好。需要安裝 snap 才能執行此操作。

首先將相應的.desktop檔案複製到您的主目錄

cp /var/lib/snapd/desktop/applications/skype_skypeforlinux-share.desktop ~/.local/share/applications/

現在編輯~/.local/share/applications/skype_skypeforlinux-share.desktop 並刪除該行

MimeType=application/octet-stream;

從文件中取出並儲存。最後一步確保該.desktop檔案具有執行權限:

chmod +x ~/.local/share/applications/skype_skypeforlinux-share.desktop

完畢!

當然,您可以使用檔案總管完成整個操作,而不是使用終端命令。

一些附註:

MimeType-files中的 -line告訴.desktop系統應用程式支援哪些 mime 類型。此資訊用於填充開啟清單。

mime 類型application/octet-stream似乎有點特殊,因為您可以將任何文件作為application/octet-stream.我認為這就是應用程式被添加到任何類型檔案的開啟方式清單中的原因。

.desktop具有相同名稱的 - 文件~/.local/share/applications優先.desktop於系統範圍位置中的 - 文件,例如/usr/share/applications(對於 deb 包)和/var/lib/snapd/desktop/applications(對於 snap)。

重新安裝或升級應用程式不會覆蓋其中的.desktop檔案。~/.local/share/applications

如果您想更深入地了解該主題,我建議您查看freedesktop.org/規格。整個東西在 Linux 下被廣泛使用,特別是在 KDE、Gnome 和 xfce 下。

相關內容