Вопрос или проблема
Когда запускается, например, thunar
в XFCE 4.18, кажется, что он использует другую версию GTK, чем при запуске в MATE 1.26. Разница заключается в том, что MATE отображает мнемоники клавиши Alt (акселераторы меню/ключи доступа, подчеркнутые буквы в меню окна), в то время как в XFCE эта функция исчезла, так как она была устаревшей в GTK3. Даже не-XFCE приложения, такие как gimp
, имеют мнемоники в MATE, но больше не в XFCE.
Возможно ли запускать приложения в XFCE (например, возможно с помощью LD_PRELOAD
или LD_LIBRARY_PATH
), чтобы они работали так, как в MATE?
В чем причина этой разницы между XFCE и MATE?
Ответ или решение
Для понимания вопроса о запуске GTK-приложений в XFCE так, как они запускаются в MATE, необходимо осветить несколько ключевых аспектов, связанных с различиями в архитектуре данных окружений рабочего стола и их зависимостях от различных версий GTK.
Теория
MATE и XFCE — оба популярные окружения рабочего стола для UNIX-подобных операционных систем, таких как Linux. Они оба используют GTK (GIMP Toolkit) для отрисовки графического интерфейса, но различаются в подходе к использованию и интеграции версий этой библиотеки.
MATE появился как форк GNOME 2 после того, как GNOME перешел на версию 3, в которой было много изменений в пользовательском интерфейсе. MATE стремился сохранить классический интерфейс GNOME 2 и последовательность в поведении приложений. Именно поэтому в MATE все еще можно встретить поддержку функций, которые были в версии GTK2 или ранних GTK3, таких как отображение горячих клавиш при нажатии Alt (мнемоники).
XFCE, с другой стороны, ориентируется на легкость и скорость, что означает, что оно стремится использовать более современные версии библиотек для улучшения производительности и взаимодействия с пользователем. В последующих обновлениях GTK3 и в GTK4 мнемоники скрыты по умолчанию и доступны только при нажатии клавиши Alt, что делает интерфейс более минималистичным, но несколько усложняет обнаружение горячих клавиш.
Пример
Запуск приложения, такого как Thunar, в среде XFCE и MATE может создавать впечатление использования разных версий GTK, из-за вышеупомянутых аспектов интеграции. В MATE активация мнемоник происходит автоматически, что обеспечивает быстрый доступ к навигации по меню посредством клавиатуры. В XFCE данной функции, как правило, не заметно без явной активации клавишей Alt, что в некоторых случаях может снижать удобство использования, особенно для тех, кто привык полагаться на эти функции.
Применение
Для решения вашей задачи — обеспечения работы GTK-приложений в XFCE, как они работают в MATE, — существует несколько подходов. Однако стопроцентно идентичное поведение может быть недостижимо без глубоких изменений в конфигурациях или даже исходных кодах приложений.
-
Изменение настроек GTK: Попробуйте отредактировать файл настроек GTK, обычно находящийся в
~/.config/gtk-3.0/settings.ini
или аналогичной директории. Вы можете попробовать добавить строку:gtk-enable-mnemonics=1
Данная опция активирует показ мнемоник, но учтите, что современные версии GTK могут игнорировать или поступать со значениями, если это прямо не поддержано.
-
Использование окружения переменных: Задание окружения переменных, таких как
GTK_MODULES
, может помочь, однако это предложение не всегда действует в новых версиях. Для этого используйте терминал:export GTK_MODULES=your-desired-modules
-
Компиляция с альтернативным GTK2 или ранним GTK3: Это весьма радикальный метод, требующий сборки приложений с другими верcиями GTK, совместимыми с MATE, но он может вызвать проблемы совместимости с системе, особенной новыми приложениями.
-
Использование LD_PRELOAD или LD_LIBRARY_PATH: Теоретически можно указать системе загрузить специфическую версию библиотеки до запуска приложений, но это также может привести к нестабильной работе. Пример команды:
LD_PRELOAD=/path/to/specific/libgtk-3.so thunar
При этом стоит убедиться, что применяемая библиотека не конфликтует с остальными компонентами на вашей системе.
-
Добавление пользовательских тем: В некоторых случаях применение определенных тем GTK может вернуть возможность мнемоник, или по крайней мере сделать интерфейс схожим с таковым в MATE.
Заключение
При решении вопросов связаных с GUI окружениями на Linux, пользователи могут столкнуться с множеством нюансов, которые требуют разного уровня технических знаний и навыков. Подходы, описанные выше, должны проводиться с осторожностью, особенно на продуктивных системах, и, возможно, в тестовой среде для оценки влияния изменений. Надеюсь, это поможет вам добиться необходимого поведения приложений в XFCE.