Например, я могу оставить Ambiance в качестве основной темы, но назначить элементарную тему приложению элементарного?
Да, простой способ - указать приложению требуемый путь, по которому находится ваш rc-файл, в команде, запускающей ваше приложение:
GTK2_RC_FILES=/usr/share/themes/Redmond/gtk-2.0/gtkrc inkscape
Это 12.04 для inkscape (который, кстати, по-прежнему Gnome2) дает следующее:
См. Дополнительную информацию о запущенной теме Gtk2 здесь .
Вопрос все еще остается в силе, и я нашел способ:
создать любую папку путь/к/MY_FOLDER
создать внутри нее папку /общий/темы/
(т.е. путь/к/MY_FOLDER/общий/темы
).
поместите любую тему GTK3 внутри последней
переименуйте в название темы "CURRENTLY ACTIVE THEME" (ТЕМА ДЕЯТЕЛЬНОСТИ).
Наконец, эта команда заставит приложение использовать переименованную тему вместо активной в данный момент:
GTK_DATA_PREFIX=путь/к/MY_FOLDER YOUR_APPLICATON
(Путь после GTK_DATA_PREFIX=
должен быть таким ( и только таким) к папке, которая содержит /общий/темы/RENAMED_THEME
. Поэтому НЕ путь/к/MY_FOLDER/общий/темы/RENAMED_THEME
, а просто путь/к/MY_FOLDER
. )
Чтобы это было внутри пусковой установки, замените соответственно:
Exec=sh -c 'GTK_DATA_PREFIX=path/to/MY_FOLDER YOUR_APPLICATION'
Да, можно, на самом деле я погуглил и получил несколько ответов:
which ooffice
. echo $ PATH
, и вы получите путь. Я рекомендую вам создать папку bin в своем домашнем каталоге, набрав mkdir ~ / bin
gedit ~ / .bashrc
, чтобы открыть ваш rc-файл bash. export PATH = ~ / bin: $ {PATH}
Теперь мы создадим сценарий, который будет выполнять вашу программу с настраиваемой темой:
gedit ~ / bin / ooffice
Введите эти строки в открытый файл:
#! / Bin / bash
env GTK2_RC_FILES = / usr / share / themes / SlicknessX / gtk-2.0 / gtkrc / usr / bin / ooffice "$ @"
Измените режим файла на исполняемый, набрав: chmod + x ~ / bin / ooffice
.
Надеюсь, это поможет, вы должны запомнить только одно: формат сценария как показано ниже:
#!/bin/bash
env GTK2_RC_FILES=PATH_TO_GTKRC PATH_TO_EXECUTABLE "$@"
Это, конечно, возможно, у меня не так много опыта в создании тем, но когда вы перейдете к / usr / share / themes / * Название темы * / В каталоге gtk-3.0 / apps /
вы найдете файлы .css
, названные в соответствии с приложениями, которые они нацелены на тему, так что да, вы можете создавать темы для конкретных приложений.
Обратите внимание, что способ вы упомянули тему, что ваши приложения могут потребовать выполнения некоторой работы (например, одновременная работа и Ambiance, и Elementary, поскольку каждая тема имеет базовый файл, поверх которого выполняется определенный стиль приложения, (файл gtkrc
в Gtk 2.0 , в то время как файл gtk.css
в случае Gtk3.0 ).
И этот файл базовой темы содержит правила стиля, специально предназначенные для данной теме, следовательно, вы c annot create Elementary подобный внешний вид из файла базовой темы Ambiance без каких-либо серьезных изменений, и даже если вы это сделаете, вы потеряете сам внешний вид Ambiance.
Кроме того, в GNOME можно применять только одну тему в время, например, если вы использовали окно внешнего вида в Ubuntu 12.04, вы знаете, что можете выбрать любую отдельную тему из раскрывающегося списка, если вы использовали gnome-tweak-tool
, чем вы можете установить разные themes, для Gtk, оконных рам и значков, но все же он не позволяет нацеливать определенные приложения на тему, поэтому, как я сказал ранее, вы можете установить совершенно разные темы для разных приложений, если вы умно работаете с файлом базовой темы, на данный момент никакие сторонние приложения не могут делать это сами по себе.
Один из способов сделать это самостоятельно - позволить файлу базовой темы ( gtk.css
) иметь только основные правила, которые нейтрален к любой теме, будь то темная или светлая. И иметь фактический дизайн темы, записанный в файлах для конкретного приложения, которые находятся в вышеупомянутом каталоге, т.е. для стилизации Nautilus, вы можете записать все необходимые свойства в файл nautilus.css
. То же самое с каждым приложением, на которое вы хотите настроить таргетинг. Очевидно, что для этого требуется приличный опыт работы с темами Gtk.
Вы можете сослаться на this для создания собственной темы с использованием шаблона. Также есть достойная документация по теме Gtk +.
Вы можете использовать переменную среды GTK GTK_THEME = elementary
для запуска приложения с элементарной темой. Например, запуск GTK_THEME = elementary pantheon-files
запустит приложение elementary Files с использованием темы elementary GTK.
Чтобы это применялось каждый раз, когда вы запускаете конкретное приложение, лучшим вариантом будет, вероятно, создать пользовательский файл .desktop (средство запуска).
/ usr / share / applications /
~ / .local / share / applications /
и вставьте средство запуска (Ctrl + V) Exec =
, чтобы включить Exec = env GTK_THEME = elementary
, а затем предыдущее существующее содержимое строки. (Таким образом, Exec = pantheon-files
превратится в Exec = env GTK_THEME = elementary pantheon-files
) При следующем запуске приложения из Unity (или выбранное вами средство запуска приложений) будет использовать элементарную тему.
Вы также можете захотеть, чтобы приложение запускалось с элементарной темой при запуске из командной строки . Для этого:
псевдоним pantheon-files = "GTK_THEME = elementary pantheon-files"
(заменив pantheon-files
на нужное приложение)