Запретить приложению изменять ассоциации файлов

Запретить приложению изменять ассоциации файлов

Недавно я установил Skype на Kubuntu 20.04 черезщелчоки я обнаружил, что он добавил себя в конец списка приложений, связанных скаждый тип файла в системе! Конечно, это означает, что для многих типов файлов, распознаваемых системой, с которыми в настоящее время не связано ни одно приложение, или неизвестных типов файлов, 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- в .desktop-files сообщает системе, какие типы mime поддерживаются приложением. Эта информация используется для заполнения open-with-lists.

Тип 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.

Связанный контент