Сохранение темы GTK с помощью gksudo
У меня есть компьютер с двумя (не одновременными) пользователями, которые оба в sudo
группа. Есть ли способ сохранить тему GTK пользователя с gksudo
Например, при запуске менеджера обновлений? По умолчанию используется тема Роли.
Я использую Lubuntu 14.04 с простым оконным менеджером (Blackbox) и без диспетчера отображения.
2 ответа
Я не уверен, почему приложения запускаются через gksudo
не используете тему вашего пользователя. Это работает для меня в полной системе Lubuntu. (Но это использует Openbox, а не Blackbox.) К счастью:
- Лучшее решение для такой программы, как Менеджер обновлений - это, вероятно, установить polkit (который обычно присутствует) и запустить Менеджер обновлений без
gksudo
, (См. Путь 1 ниже.) - Для приложений, которые нужно запускать с правами суперпользователя, или если вы не хотите устанавливать polkit, можно обойти эту проблему, указав нужную тему
GTK_THEME
(см. Путь 2 и Путь 3).
Способ 1: установить polkit (он же PolicyKit).
Лучшее решение для коммунальных услуг, таких как:
- Software Updater / Update Manager (
update-manager
) - Ubuntu Software Center (
software-center
) - Lubuntu Software Center (
lubuntu-software-center
) - Программные обновления (
software-properties-gtk
)
... и многие другие утилиты системного администрирования в Ubuntu просто не запускают их как root.
Обычно вам не нужно запускать эти утилиты как root, потому что они интегрируются с polkit и используют его (вместо sudo
) выполнить аутентификацию (просто) при необходимости. Поскольку программа, показывающая вам пользовательский интерфейс, фактически работает как вы, а не как пользователь root, она отображается в соответствии с конфигурацией вашей учетной записи пользователя.
Обычно ничего особенного для этого не требуется, даже в системе Lubuntu. Ubuntu спроектирован так, что эти утилиты могут быть запущены как пользователь без полномочий root без какой-либо специальной настройки.
Но так как ваша система особенно минимальна, у вас, вероятно, не установлен polkit. Вы можете получить его, установив policykit-1 и policykit-1-гном пакеты.
sudo apt-get update
sudo apt-get install policykit-1 policykit1-1-gnome
С установленным polkit эти утилиты должны автоматически использовать его, и его не нужно запускать как root.
Однако это может не подойти:
- если вы не хотите устанавливать polkit, или
- для запуска программ GTK+ от имени root, которые не были написаны для использования polkit (например, Leafpad или Gedit).
Способ 2: установить нужную тему GTK+ при запуске gksudo
,
Предположим, вы хотите запустить gedit
как корень. Обратите внимание, что этот метод работает аналогично для других программ GTK+ (например, диспетчера обновлений).
Вместо бега gksudo gedit
, Вы можете запустить:
gksudo env GTK_THEME=HighContrast gedit
замещать HighContrast
с названием желаемой темы.
(Я использую env
потому что хотя sudo
опоры sudo VARIABLE=name command
синтаксис, gksu
/ gksudo
не.)
Способ 3: сделать лаунчер, который устанавливает желаемую тему.
Это то же самое, что и в способе 2: просто запускать программу через панель запуска, а не вводить команду каждый раз.
Чтобы сделать ярлык для запуска программы (например, gedit
) с определенной темой GTK+ (например, HighContrast
) как пользователь root в LXDE, запустите:
lxshortcut -o ~/Desktop/'gedit (as root)'
На месте gedit (as root)
В качестве отображаемого имени программы запуска укажите все, что вы хотите.
В окне "Свойства файла", которое появляется при запуске этой команды, перейдите на вкладку "Ввод рабочего стола". В текстовое поле с надписью команда введите:
gksudo env GTK_THEME=HighContrast gedit
Вы можете оставить все остальное пустым и просто нажать ОК.
Если вы хотите, вы можете использовать полные пути исполняемых файлов (/usr/bin/gksudo
и, в этом примере, /usr/bin/gedit
.) Но это вообще не обязательно.
Создание пусковой установки для gksudo env GTK_THEME HighContrast gedit
, (Левая часть команды не видна.)
У меня на самом деле та же проблема, что и при использовании i3wm. Я полагаю, поскольку вы используете Lubuntu, у вас должен быть установлен lxappearance. Запустите это с помощью gksudo, тогда вы должны увидеть выбранную вами тему для gksudo. Измените и примените это, у вас должна быть желаемая тема для gksudo.