Вопрос или проблема
У меня система Aweseome-wm + xfce.
Где xfce4-mime-settings
хранит свои значения? В частности, к вопросу о приложениях по умолчанию.
Значения в GUI у меня отличаются от тех, которые находятся в ~/.config/mimeapps.list
, и они имеют приоритет над последними.
Некоторые программы по умолчанию хранятся в:
~/.config/xfce4/helpers.rc
/etc/xdg/xfce4/helpers.rc
Но это не включает PDF типы.
Путём попыток и ошибок в Docker я осознал следующее.
xfce4-mime-settings
читает ассоциации в порядке предпочтения из:
$HOME/.config/mimeapps.list
/usr/share/applications/mimeinfo.cache
Фактические директории зависят от $XDG_CONFIG_HOME
, $XDG_CONFIG_DIRS
и $XDG_DATA_DIRS
, и также возможно иметь специфичную для DE (Desktop Environment) версию mimeapps.list
с более высоким приоритетом, такую как xfce-mimeapps.list
.
Смотрите Связь между типами MIME и приложениями
Если пользователь изменяет настройки в xfce4-mime-settings
, они сохраняются в $HOME/.config/mimeapps.list
.
Файл /usr/share/applications/mimeinfo.cache
может быть создан с нуля или обновлён с помощью стандартной утилиты от freedesktop.org desktop-file-utils
sudo update-desktop-database
Я все еще не знаю, есть ли инструмент для массового заполнения $HOME/.config/mimeapps.list
Что касается моего вопроса, явные несоответствия решаются путем проверки кэша (mimeinfo.cache
).
Файл можно найти по адресу:
/usr/share/applications/mimeinfo.cache
Ответ или решение
Конфигурационные файлы для настроек MIME-типов в системе, объединяющей Awesome Window Manager и окружение рабочего стола XFCE, играют критическую роль уже на уровне пользовательского опыта, позволяя связать определенные типы файлов с соответствующими программами для их открытия и обработки. Рассмотрим подробнее, как работают эти настройки в контексте вашего вопроса.
Теория
MIME (Multipurpose Internet Mail Extensions) – это стандарты, которые определяют способ представления различных типов данных в приложениях, особенно тех, которые взаимодействуют с интернет-контентом. В графических окружениях таких, как XFCE, MIME-типами устанавливаются ассоциации с приложениями для их открытия. Ваша задача определить, где и как хранятся эти настройки для «по умолчанию» выбираемых приложений.
Обычно в окружении рабочего стола XFCE подобные настройки сохраняются в нескольких местах, что и вызывает путаницу, с которой вы столкнулись. Главными файлaми здесь являются ~/.config/mimeapps.list
, который устанавливает пользовательские настройки, и mimeinfo.cache
, расположенный в /usr/share/applications/
, хранящий общесистемные значения. Однако, в XFCE также могут существовать специфичные для этой DE (Desktop Environment) файлы, которые могут влиять на данные параметры.
Пример
В вашей системе вы наблюдаете различие между данными, хранящимися в ~/.config/mimeapps.list
, и тем, что отображает GUI, вероятно XFCE, в вашем случае. Причина заключается в приоритетах чтения и использовании различных конфигурационных файлов.
Вы раскрыли, что xfce4-mime-settings
придает предпочтение следующим источникам в данной последовательности:
$HOME/.config/mimeapps.list
– для пользовательских настроек./usr/share/applications/mimeinfo.cache
– для общесистемного кэша приложений и их ассоциаций.
Ваше окружение, возможно, также воздействует на концы, включающие в себя переменные среды вроде $XDG_CONFIG_HOME
, $XDG_CONFIG_DIRS
и $XDG_DATA_DIRS
. Эти переменные влияют на то, где именно в файловой системе будут искаться конфигурационные файлы, что может создать дополнительные сложности в мульти-пользовательской и мульти-десктопной системах.
Применение
Для эффективного управления этими настройками и разрешения возникающих проблем, можно предпринять следующие действия:
-
Проверка и правка
mimeapps.list
: Убедитесь, что~/.config/mimeapps.list
правильно отдает приоритеты тем или иным приложениям. Вы можете напрямую редактировать этот файл, чтобы задать ваши предпочтения для определенных MIME-типов. -
Использование
update-desktop-database
: Если вы добавляете или изменяете десктопные файлы приложений, полезным будет выполнить командуsudo update-desktop-database
. Это пересоздастmimeinfo.cache
и применит изменения на уровне системы. -
Создание DE-специфических списков: В случаях, когда нужен более детальный контроль или интеграция с другим окружением, вы можете создать и использовать файлы конфигурации специфичные для DE, такие как
xfce-mimeapps.list
. -
Разрешение конфликтов через кэш: Иногда, странности, такие как те, что вы описали (типы для файлов PDF, которые не отображаются), можно разрешить путем анализа содержимого и структуры
mimeinfo.cache
и/илиhelpers.rc
.
К сожалению, на данный момент нет стандартных инструментов для массового заполнения или миграции данных в mimeapps.list
, что требует ручного вмешательства или написания скриптов для автоматизации таких задач. Тщательное управление и понимание логики чтения файлов вашего рабочего окружения помогут избежать конфликтов и несоответствий в конфигурациях.
Таким образом, грамотная организация и управление файлами конфигурации настроек MIME-типов помогают достичь необходимой функциональности и юзабилити системы, делая ее более эффективной и предсказуемой в стандартизации использования приложений для различных типов данных.