Сохранение темы 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.