Установить конкретную тему для приложений, запускаемых с правами root

8

Мне бы хотелось, чтобы приложения, запускаемые от имени пользователя root, отличались от приложений, запускаемых обычным пользователем.

Это можно сделать с помощью темы, которая не пришла, usr/share/themesно я не нашел способа изменить тему по умолчанию, используемую корневыми приложениями.

Можно ли это сделать?

Использование sudo gnome-appearance-propertiesне работает.

danjjl
источник
Связанный: askubuntu.com/questions/19313/…
Хорхе Кастро

Ответы:

5

Вы правы, когда обнаружили, что приложения, запущенные с правами root, используют тему пользователя, который их вызывает.

Однако есть только несколько приложений, которые имеют смысл запускать от имени пользователя root. К счастью для меня, это только три приложения:

  • Gedit
  • кораблик
  • Терминал

Все эти три приложения могут быть по крайней мере частично тематическими независимо от темы рабочего стола. После того, как они будут выданы в качестве корневых изменений, тема может быть применена и будет сохранена:

введите описание изображения здесь

Слева: темы по умолчанию | справа: корневые темы

Takkat
источник
Большое спасибо, единственные программы, которые я действительно хотел с другой темой - это gedit и nautilus. Я не приму ваш ответ, пока у кого-то есть общесистемный ответ.
danjjl
Это был творческий обход. +1
Джо-Эрленд Шинстад
@danjjl: Я бы тоже хотел увидеть лучшее решение;)
Таккат
1
нашел способ получить системные изменения :)
danjjl
как мы можем это сделать??
Sukupa91
4

Я нашел хак, чтобы получить изменение всей системы :)

  • Из настроек внешнего вида выберите тему, которую вы установили в ~ / .themes
  • Создайте папку .themes в / root :

sudo mkdir /root/.themes

  • Скопируйте свою тему в /root/.themes :

sudo cp -r ~/.themes/yourTheme /root/.themes

  • Удалите папки gtk-2.0 и metacity-1 в /root/.themes/yourTheme :

sudo rm -R /root/.themes/yourTheme/gtk-2.0 /root/.themes/yourTheme/metacity-1

  • Скопируйте папки gtk-2.0 и metacity-1 новой корневой темы в /root/.themes :

sudo cp -r /PathToRootTheme/gtk-2.0 /root/.themes/yourTheme/ ; sudo cp -r /PathToRootTheme/metacity-1 /root/.themes/yourTheme/

danjjl
источник
Какую папку вы имеете в виду именно /PathToRootTheme/? Вы имеете в виду тот, который был изначально загружен?
jat255
2

Я использовал другой подход. Я использую индивидуальные темы и значки для обычного пользователя. Это в ~ / .themes и ~ / .icons . Мои методы заключаются в том, чтобы заставить корневые приложения думать, что они используют локальную тему текущего пользователя , но на самом деле использует другую глобальную тему .

Способ 1. Использование общесистемной / глобальной темы и значков для корневых приложений

Шаг 1 : Создайте символические ссылки в /root/.themes и /root/.icons на глобальную тему и значок, который вы хотите использовать для корневых приложений. Создайте папки /root/.themes и /root/.icons, если они еще не существуют:

sudo mkdir /root/.themes
sudo mkdir /root/.icons

Я использую тему Ubuntu по умолчанию ( Ambiance ) и иконки ( ubuntu-mono-dark ). Замените Ambiance и ubuntu-mono-dark на тему и значки, которые вы хотите использовать, и выполните следующие команды:

sudo ln -s -t /root/.themes /usr/share/themes/Ambiance
sudo ln -s -t /root/.icons /usr/share/icons/ubuntu-mono-dark

Но убедитесь, что тема и значок доступны в / usr / share / themes и / usr / share / icons , иначе Root Apps не сможет получить к ним доступ, и они будут выглядеть ужасно.

Примечание . Предыдущие ответы включали копирование всей папки тем и значков в /root/.themes и /root/.icons. Аналогичный подход используется в методе 2 этого ответа. Но я предпочитаю символические ссылки, поскольку они избегают дублирования данных и выполняют свою работу.

Шаг 2 : Переименовать тему и значок симлинку в /root/.themes и /root/.icons с точно таким же именем , как один из ~ / .themes и ~ / .icons , что вы сейчас используете. Как я использую Delorean Dark тему и иконки Faenza-Darkest , команды в моем случае будут такими:

sudo mv /root/.themes/Ambiance '/root/.themes/Delorean Dark'
sudo mv /root/.icons/ubuntu-mono-dark '/root/.icons/Faenza-Darkest'

замещать Delorean Dark и Faenza-Darkest на названия тем, которые вы используете.

Комбинация клавиш: Вы можете выполнить Шаг 1 и 2 в 1 шаг

sudo ln -s /usr/share/themes/Ambiance '/root/.themes/Delorean Dark'
sudo ln -s /usr/share/icons/ubuntu-mono-dark '/root/.icons/Faenza-Darkest'

Способ 2 : тема и значки исключительно для корневых приложений

Если вы хотите сделать темы и значки Root App недоступными для обычных пользователей, не размещайте их в / usr / share / themes и / usr / share / icons . Вместо этого поместите их в /root/.themes и /root/.icons . Затем переименуйте их таким же имя текущей темы и значки, похожую на шаг 2 из метода 1 .

HEXcube
источник
0

Спасибо за подсказку "ln -s -t ..." - я забыл об этом. Это будет большая экономия места наверняка.

В моем случае я всегда был большим поклонником Shiki-Colors (и любых последующих тем на их основе, включая несколько созданных мной) и GNOME-Colors. Будучи пользователем LXDE / Openbox, я всегда чувствовал, что PCManFM визуально не делает достаточно, чтобы адекватно напоминать пользователям, когда они используют его с привилегиями sudo. Поэтому я всегда думал, что он и все остальное должны использовать красный (винный) GTK и темы значков при использовании его с привилегиями sudo.

Фред МакКинни
источник
0

Есть более простое решение.

Перейдите к одному из tty (например, нажав Ctrl + Alt + F3 или Ctrl + Alt + F4 или Ctrl + Alt + F5). Войдите в систему как root. тип :

startx

Теперь вы вошли в систему как пользователь root в графическом режиме, найдите приложение «tweak» и проверьте темный режим, выйдите из системы. После того, как вы вернетесь к типу командной строки tty:

exit,

Чтобы вернуться к вашей сессии, попробуйте нажать (Ctrl + Alt + F1 или Ctrl + Alt + F7)

Рочди Буджеем
источник