防止应用程序更改文件关联

防止应用程序更改文件关联

我最近在 Kubuntu 20.04 上安装了 Skype折断我发现它将自己添加到了与之关联的应用程序列表的末尾系统上的每种文件类型! 当然,这意味着对于系统识别的许多当前没有与之关联的应用程序或未知的文件类型,Skype 将成为默认应用程序。

我发现唯一可行的办法是(实际的卸载 Skype 的另一种方法是彻底卸载它。

有没有办法阻止应用程序执行此操作?或者至少,有没有一种简单的方法可以在事后撤消此操作?

此示例特定于 Skype折断但我更喜欢一个通用的答案(即,适用于折断或一般情况下)如果存在。我见过的与文件类型关联类似问题相关的唯一答案是特定于应用程序的,因此在这种情况下没有帮助。

系统

  • 操作系统:Kubuntu 20.04
  • KDE Plasma 版本: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 类型。此信息用于填充 open-with-lists。

mime 类型application/octet-stream似乎有点特殊,因为您可以将任何文件作为 打开application/octet-stream。我认为这就是为什么将应用程序添加到任何类型文件的打开方式列表中的原因。

.desktop具有相同名称的文件~/.local/share/applications优先.desktop于系统范围位置中的文件,例如/usr/share/applications(对于 deb-packages)和/var/lib/snapd/desktop/applications(对于 snaps)。

重新安装或升级应用程序不会覆盖.desktop文件中的A。~/.local/share/applications

如果你想深入了解这个话题,我建议你看看freedesktop.org/specifications。这整个东西在 Linux 下被广泛使用,特别是在 KDE、Gnome 和 xfce 下。

相关内容