~/.local/share/ отсутствует в $XDG_DATA_DIRS, однако файлы .desktop в папке applications отображаются в запуске GNOME.

Вопрос или проблема

Я использую GNOME на Arch Linux.
Согласно спецификации меню freedesktop, файлы .desktop находятся в $XDG_DATA_DIRS/applications/.
Но когда я чистил записи рабочего стола сегодня, заметил, что нет /home/<имя пользователя>/.local/share/ в $XDG_DATA_DIRS, но файлы .desktop, находящиеся в ~/.local/share/applications/, отображаются в GNOME Launcher.

Я упускаю что-то важное?

Путь должен находиться в $XDG_DATA_DIRS только если он должен обновляться автоматически. Поскольку ~/.local/share не находится в $XDG_DATA_DIRS, любые изменения, сделанные в любом файле рабочего стола в ~/.local/share/applications, не вступят в силу, если вы не перезайдете в сессию.

.

Ответ или решение

Вы используете GNOME на Arch Linux и заметили некоторую неконгруэнтность между документацией freedesktop и фактическим поведением системы. Согласно спецификации меню freedesktop, .desktop файлы должны находиться в $XDG_DATA_DIRS/applications/. Однако, вы обнаружили, что файлы .desktop, находящиеся в ~/.local/share/applications/, отображаются в GNOME Launcher, несмотря на то, что ~/.local/share/ не включен в $XDG_DATA_DIRS.

Причина этого проста: GNOME и другие среды рабочего стола Linux следуют концепции XDG Base Directory Specification, которая предполагает, что личные настройки и данные пользователя будут храниться в одном месте, независимо от системных переменных среды. Вариант с размещением пользовательских .desktop файлов в ~/.local/share/applications/ — это стандартный идиоматический способ для Linux-платформ, позволяющий пользователям создавать и изменять ярлыки приложений без изменения системных директорий.

Фактически, GNOME автоматически проверяет наличие и изменения в ~/.local/share/applications/ даже если этот путь не включен в $XDG_DATA_DIRS. Таким образом, любой .desktop файл, помещенный в эту директорию, будет обнаружен и обработан GNOME Launcher.

Следует учесть, что изменения, внесенные в .desktop файлы в ~/.local/share/applications/, могут отразиться не сразу. Чтобы их учесть, может потребоваться перезайти в сеанс или вручную обновить кеш среды рабочего стола.

Такое поведение обеспечивает баланс между удобством пользовательской настройки и стабильностью системы, избегая вмешательства в глобальные параметры и настройки, которое может повлиять на всех пользователей системы. Через это достигается строгая изоляция пользовательских настроек, что является важным аспектом безопасности и конфиденциальности.

Таким образом, ваша ситуация – это не ошибка или упущение, а часть продуманного проектирования, которое обеспечивает гибкость и простоту работы с пользовательскими данными в экосистеме UNIX-подобных систем.

Оцените материал
Добавить комментарий

Капча загружается...