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

Rat*_*ler 10 skype file-association kubuntu snap

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

我发现撤消此操作的唯一实用方法(实际含义不是手动检查每种文件类型)是完全卸载 Skype。

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

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

系统

  • 操作系统:Kubuntu 20.04
  • KDE 等离子版本:5.18.8
  • KDE 框架版本:5.68.0
  • Qt版本:5.12.8
  • 内核版本:5.15.0-46-generic

moo*_*765 9

我不久前也有过同样的经历并寻找解决方案,所以这就是我所做的,到目前为止效果很好。需要安装快照才能执行此操作。

首先将相应的.desktop文件复制到您的主目录

cp /var/lib/snapd/desktop/applications/skype_skypeforlinux-share.desktop ~/.local/share/applications/
Run Code Online (Sandbox Code Playgroud)

现在编辑~/.local/share/applications/skype_skypeforlinux-share.desktop 并删除该行

MimeType=application/octet-stream;
Run Code Online (Sandbox Code Playgroud)

从文件中取出并保存。最后一步确保该.desktop文件具有执行权限:

chmod +x ~/.local/share/applications/skype_skypeforlinux-share.desktop
Run Code Online (Sandbox Code Playgroud)

完毕!

当然,您可以使用文件管理器完成整个操作,而不是使用终端命令。

一些旁注:

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/specifications。整个东西在 Linux 下被广泛使用,特别是在 KDE、Gnome 和 xfce 下。