Могу ли я применить другую тему GTK3 из основной для отдельного приложения?

Например, я могу оставить Ambiance в качестве основной темы, но назначить элементарную тему приложению элементарного?

50
задан 30 July 2017 в 16:53

5 ответов

Да, простой способ - указать приложению требуемый путь, по которому находится ваш rc-файл, в команде, запускающей ваше приложение:

GTK2_RC_FILES=/usr/share/themes/Redmond/gtk-2.0/gtkrc inkscape

Это 12.04 для inkscape (который, кстати, по-прежнему Gnome2) дает следующее:

inkscape window with windows theme

См. Дополнительную информацию о запущенной теме Gtk2 здесь .

7
ответ дан 30 July 2017 в 16:53

Вопрос все еще остается в силе, и я нашел способ:

  • создать любую папку путь/к/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'
10
ответ дан 30 July 2017 в 16:53

Да, можно, на самом деле я погуглил и получил несколько ответов:

  1. Найдите точный исполняемый файл программы, тему которой вы хотите изменить. Например, если вы хотите использовать его для ooffice, введите в терминале which ooffice .
  2. Найдите папку bin, в которую все приложения помещают свои двоичные исполняемые файлы. Введите в терминале echo $ PATH , и вы получите путь. Я рекомендую вам создать папку bin в своем домашнем каталоге, набрав mkdir ~ / bin
  3. Введите gedit ~ / .bashrc , чтобы открыть ваш rc-файл bash.
  4. В конец этого файла и добавьте эту строку export PATH = ~ / bin: $ {PATH}

Теперь мы создадим сценарий, который будет выполнять вашу программу с настраиваемой темой:

  1. Создайте файл сценария приложения, набрав: gedit ~ / bin / ooffice
  2. Введите эти строки в открытый файл:

     #! / Bin / bash
    env GTK2_RC_FILES = / usr / share / themes / SlicknessX / gtk-2.0 / gtkrc / usr / bin / ooffice "$ @"
     
  3. Измените режим файла на исполняемый, набрав: chmod + x ~ / bin / ooffice .

Надеюсь, это поможет, вы должны запомнить только одно: формат сценария как показано ниже:

#!/bin/bash
env GTK2_RC_FILES=PATH_TO_GTKRC PATH_TO_EXECUTABLE "$@"
2
ответ дан 30 July 2017 в 16:53

Это, конечно, возможно, у меня не так много опыта в создании тем, но когда вы перейдете к / 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 +.

8
ответ дан 30 July 2017 в 16:53

Вы можете использовать переменную среды GTK GTK_THEME = elementary для запуска приложения с элементарной темой. Например, запуск GTK_THEME = elementary pantheon-files запустит приложение elementary Files с использованием темы elementary GTK.

Чтобы это применялось каждый раз, когда вы запускаете конкретное приложение, лучшим вариантом будет, вероятно, создать пользовательский файл .desktop (средство запуска).

Создать собственный файл .desktop

  1. Откройте браузер файлов
  2. Перейдите к / usr / share / applications /
  3. Скопируйте средство запуска (выделите и Ctrl + C) для приложения, которое вы хотите запустить с элементарной темой
  4. Перейдите к ~ / .local / share / applications / и вставьте средство запуска (Ctrl + V)
  5. Щелкните правой кнопкой мыши и откройте средство запуска с помощью текстового редактора
  6. . Измените строку, начинающуюся с Exec = , чтобы включить Exec = env GTK_THEME = elementary , а затем предыдущее существующее содержимое строки. (Таким образом, Exec = pantheon-files превратится в Exec = env GTK_THEME = elementary pantheon-files )
  7. Сохраните и закройте файл

При следующем запуске приложения из Unity (или выбранное вами средство запуска приложений) будет использовать элементарную тему.

Бонус: заставить его работать при использовании командной строки

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

  1. Откройте приложение Терминала
  2. Введите псевдоним pantheon-files = "GTK_THEME = elementary pantheon-files" (заменив pantheon-files на нужное приложение)
  3. Нажмите Enter.

Предостережения:

  1. Это не изменит тему вашего оконного менеджера на элементарную тему.
  2. Это (по замыслу) будет применяться только к вашей учетной записи, а не к root или кому-либо еще на машине.
  3. Имена тем являются cAsE-sEnsItiVe и должны совпадать с именем папки темы.

Источники:

  1. Я участвую в элементарном участии;)
  2. Справочное руководство GTK + 3: Запуск приложений GTK +
  3. Установить переменную в файле .desktop
38
ответ дан 30 July 2017 в 16:53

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

Похожие вопросы: