
Мне интересно, как реализовано управление ассоциациями файлов в Linux. Где хранится соответствующая информация? Как ее изменить (Меня интересуют способы, не основанные на KDE; я знаю, что в KDE для этого есть страница конфигурации системы.)?
Будем признательны за ссылки на соответствующие статьи/документацию :)
решение1
Большинство сред рабочего стола используют Freedesktop.orgСпецификация действий MIME. Каждая программа имеет.desktop
файлв /usr/share/applications
и/или ~/.local/share/applications
, предоставляя информацию о программе и типах MIME, которые она принимает. Собственные предпочтения пользователя хранятся в ~/.local/share/applications/defaults.list
.
Схемы URI, такие как http:
или mailto:
, просто перечислены как специальные типы MIME. (Хотя старые программы все еще могут использовать базы данных схем URI, специфичные для GNOME или KDE.)x-scheme-handler/scheme
Некоторые «традиционные» почтовые программы, такие как Alpine или Mutt, все еще используют старый ~/.mailcap
файл для определения лучшего инструмента для просмотра вложений. Это отчасти потому, что они основаны исключительно на терминале и требуют других механизмов.
решение2
Вы можете посмотреть руководство (и сам скрипт оболочки) для xdg-open
. Он проверяет, используете ли вы KDE, Gnome, lxde, и передает файл kde-open
и т. д. Если вы не используете ни один из них, он ищет их с помощьюxdg-mime
. Вы можете посмотреть информацию о том, как это работает, наfreedesktop.