Сохранение темы 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 и policykit-1-гном Установите policykit-1-gnome пакеты.

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.

Другие вопросы по тегам