GTK (Русский)
C сайта GTK+:
- GTK+, или GIMP Toolkit - это мультиплатформенный инструментарий для разработки графического пользовательского интерфейса. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off tools to complete application suites.
GTK+, GIMP Toolkit, изначально сделан проектом GNU для GIMP, но теперь это очень популярный инструмент связанный с многими языками. Эта статья будет исследовать инструменты, используемые для настройки GTK+ тем, стилей, иконок, шрифтов и размеров шрифтов, а также подробную ручную настройку.
Установка
Две версии GTK+ в настоящее время доступны в официальных репозиториях. Они могут быть установлены со следующими пакетами:
- GTK+ 3.x доступен с пакетом gtk3.
- GTK+ 2.x доступен с пакетом gtk2.
- GTK+ 1.x доступен с пакетом gtkAUR.
Темы
В GTK+ 2, тема по умолчанию Raleigh, но Arch Linux имеет пользовательский файл настроек /usr/share/gtk-2.0/gtkrc
, который устанавливает тему по умолчанию Adwaita. В GTK+ 3, тема по умолчанию Adwaita, но также включены темыHighContrast и Raleigh.
Чтобы установить определенную тему, вы можете задать переменные среды.
- Для GTK+ 2, используйте переменную среду
GTK2_RC_FILES
например:
$ GTK2_RC_FILES=/usr/share/themes/Industrial/gtk-2.0/gtkrc gimp
- запустит GIMP с Industrial theme.
- Для GTK+ 3, используйте переменную среду
GTK_THEME
например:
$ GTK_THEME=Adwaita:dark gnome-calculator
- Будет запущен GNOME Калькулятор с тёмным вариантом темы Adwaita.
Другие темы могут быть установлены из официальных репозиториев или из AUR.
С поддержкой обеих GTK+ 2 и GTK+ 3:
- Breeze — GTK+ версия тем виджетов KDE's по умолчанию.
- Deepin — Тема по умолчанию для рабочего стола Deepin.
- MATE Themes — Тема по умолчанию для Рабочего стола MATE. Включает: BlackMATE, BlueMenta, Blue-Submarine, ContrastHigh, ContrastHighInverse, GreenLaguna, Green-Submarine, Menta, TraditionalGreen, TraditionalOk, TraditionalOkTest
- Numix — Плоская и легкая тема с современным видом (GNOME, Openbox, Unity, Xfce).
- Ceti-2 — Тема для GTK 3, GTK 2 и Gnome-Shell.
- Clearlooks-Phénix — GTK3 тема визуально близкая к Clearlooks.
- Greybird — Серая и синяя тема Xfce, используемая по умолчанию в Xubuntu 12.04.
- Orion — Современная, светлая тема GTK.
- Vertex — Тема для GTK 3, GTK 2, Gnome-Shell и Cinnamon.
- Zuki — Темы для GTK, gnome-shell и др.
Поддерживается только GTK+ 2:
- GTK+ Engines — Движок тем для GTK+ 2. Включает: Clearlooks, Crux, Industrial, Mist, Redmond, ThinIce
- https://github.com/GNOME/gtk-engines[устаревшая ссылка 2020-08-02] || gtk-engines
- Oxygen-Gtk — Порт стандартных тем KDE виджетов (Oxygen) в GTK2
- Aurora Gtk Engine — Последний участник семейства Clearlooks.
- Openbox Themes — Различные темы для Оконного менеджера Openbox.
- QtCurve — Настраиваемый набор стилей виджетов для KDE и Gtk.
Есть ряд дополнительных тем GTK+ в AUR: поиск gtk-theme, поиск gtk2-theme, поиск gtk3-theme.
- Так как GTK+ 3 быстро меняется, GTK+ 3 темы требуют переработки после выпуска GTK+ 3. По этой причине, не все темы GTK+ 3, могут выглядеть как предполагалось при использовании последней GTK + 3 версии.
- Некоторые темы могут потребовать librsvg для правильного отображения, но не все указывают его в качестве зависимости. Попробуйте установить его, если выбранная тема выглядит сломанной.
- Некоторые темы не могут использоваться для отображения панели "как есть" (
светлый текст на светлом фоне), так что вам нужно использовать предоставленный фон панели.
GTK+ и Qt
Если у вас есть GTK+ и Qt (KDE) приложения на рабочем столе, то вы знаете, что их внешность не сочетается/не совпадает.Если вы хотите, чтобы ваши стили GTK+ соответствовали вашим стилям Qt прочитайте Единый внешний вид приложений Qt и GTK.
Средства настройки
Большинство крупных окружений рабочего стола предоставляют инструменты для настройки тем GTK+, иконок, шрифта и размера шрифта, и управляют этими настройками с помощью XSettings:
- Если вы используете Cinnamon, используйте Themes tool (cinnamon-settings themes): перейдите в Параметры > Параметры системы > Оформление.
- Если вы используете Enlightenment: перейдите в Settings > All > Look > Application Theme.
- Если вы используете GNOME, используйте Gnome Tweaks (gnome-tweaks): установите gnome-tweaks.
- Если вы используете MATE, используйте Appearance Preferences tool (mate-appearance-properties): перейдите в Система > Параметры > Внешний вид.
- Если вы используете Xfce, используйте Appearance tool: перейдите Настройки > Внешний вид.
- Если вы используете Openbox, перейдите в obconf > Тема или lxappearance с установленным lxappearance-obconf, тогда lxappearance-obconf > Рамка окна > Тема.
Другие графические инструменты, как правило перезаписывают файлы настроек.
Поддерживаются оба GTK+ 2 и GTK+ 3:
- KDE GTK Configurator — Приложение, которое позволяет изменять стиль и шрифт GTK+2 и Gtk+3 приложений.
- https://projects.kde.org/kde-gtk-config || kde-gtk-config
- После установки,
kde-gtk-config
также можно найти в System Settings > Application Appearance > GTK.
- LXAppearance — независимая от Окружения рабочего стола утилита настройки GTK+2 и GTK+3, от проекта LXDE (не требует других частей LXDE).
Поддерживается только GTK+ 2:
- GTK+ Change Theme — Маленькая программа, которая позволяет изменять вашу GTK+ 2.0 тему (считается лучшей альтернативой switch2).
- GTK+ Preference Tool — Переключает GTK+ темы и меняет шрифт.
- GTK+ Theme Switch — Простой переключатель GTK+ тем.
Настройка
Параметры GTK+ могут быть вручную заданы в файлах настройки, но окружение рабочего стола и приложения могут переопределить эти параметры. В зависимости от версии GTK+, эти файлы находятся по пути:
- GTK+ 2 конкрентного пользователя:
~/.gtkrc-2.0
или~/.config/gtkrc-2.0
- GTK+ 2 всей системы:
/etc/gtk-2.0/gtkrc
- GTK+ 3 конкрентного пользователя:
$XDG_CONFIG_HOME/gtk-3.0/settings.ini
, или$HOME/.config/gtk-3.0/settings.ini
если не установлена$XDG_CONFIG_HOME
- GTK+ 3 всей системы:
/etc/gtk-3.0/settings.ini
- Смотрите GTK+ 3 свойства GtkSettings (и GTK+ 2 свойства[устаревшая ссылка 2021-11-10]) в справочном руководстве программирования GTK+, для полного перечня поддерживаемых в настоящее время вариантов настройки GTK+.
- Некоторые настройки, описанных ниже (например
gtk-icon-sizes
) являются устаревшими и игнорируется с GTK+ 3.10. - При редактировании файлов настроек GTK+, только вновь запущенные приложения будет отображать изменения.
Базовая настройка темы
Для ручного изменения темы GTK+, иконок, шрифтов и размера шрифтов, добавьте следующие файлы настроек, например:
GTK+ 2:
~/.gtkrc-2.0
gtk-icon-theme-name = "Adwaita" gtk-theme-name = "Adwaita" gtk-font-name = "DejaVu Sans 11"
GTK+ 3:
$XDG_CONFIG_HOME/gtk-3.0/settings.ini
[Settings] gtk-icon-theme-name = Adwaita gtk-theme-name = Adwaita gtk-font-name = DejaVu Sans 11
Вариант тёмной темы
Некоторые темы GTK+ 3 содержат тёмный вариант темы, но он используется только когда приложение запрашивает именно его. Чтобы использовать вариант темной темы со всеми GTK+ 3 приложениями, установите:
gtk-application-prefer-dark-theme = true
Горячие клавиши
Keyboard shortcuts (otherwise known as accelerators in GTK+) may be changed by hovering the mouse over the respective menu item, and pressing the desired key combination. To enable this feature, set:
gtk-can-change-accels = 1
Задержка меню GNOME
Этот параметр управляет задержкой между "указыванием мыши" на меню и "открытием меню". Эта задержка измеряется в миллисекундах.
gtk-menu-popup-delay = 0
Уменьшить размер виджетов
Если у вас небольшой экран, или вы просто не любите большие иконки и виджеты, вы можете изменить их размер.
Для того чтобы иконки были без текста в панели инструментов ((допустимые значения)), используйте
gtk-toolbar-style = GTK_TOOLBAR_ICONS
Чтобы использовать меньшие иконки:
gtk-icon-sizes = "panel-menu=16,16:panel=16,16:gtk-menu=16,16:gtk-large-toolbar=16,16\ :gtk-small-toolbar=16,16:gtk-button=16,16"
Или, чтобы удалить иконки из кнопок полностью:
gtk-button-images = 0
Вы также можете удалить из меню иконки:
gtk-menu-images = 0
Смотрите также [1][устаревшая ссылка 2020-08-02] и [2].
Место запуска выбора файла
Чтобы открывать диалог "выбор файла" (например при открытии/сохранении) в текущем рабочем каталоге а не в последнем (recent) месте (обычно текущий-рабочий-каталог это домашний каталог), сделайте следующее:
Для GTK+ 3
Измените DConf с gsettings:
$ gsettings set org.gtk.Settings.FileChooser startup-mode cwd
Для GTK+ 2:
Измените файл настроек ~/.config/gtk-2.0/gtkfilechooser.ini
:
~/.config/gtk-2.0/gtkfilechooser.ini
StartupMode=cwd
Наследие поведения скроллбара
До GTK+ 3.6, щелчёк в обе стороны от ползунка сдвинет прокрутку в направлении щелчка, примерно на одну страницу. Так GTK+ 3.6, слайдер сразу перейдёт к позиции мыши. Такое поведение можно отменить в некоторых приложениях путем создания файла с содержимым, приведенным ниже:
~/.config/gtk-3.0/settings.ini
[Settings] gtk-primary-button-warps-slider = false
Отключить наложение скролбара
С GTK+ 3.15, наложения полосы прокрутки по умолчанию включено, что означает, что полосы прокрутки будут показываться только при наведении курсора мыши на GTK+ 3 приложение. Такое поведение можно отменить, установив следующую переменную окружения: GTK_OVERLAY_SCROLLING=0
.
Смотрите Переменные окружения#Графические приложения.
Удалить наложенные показателя скролбара
Позиции наложения прокрутки обозначены тонкими пунктирными линиями в окне приложения. Эти пунктирные линии будут присутствовать, даже если накладка прокрутка отключена с помощью переменной сред, которая обсуждались в предыдущем разделе. Для удаления индикаторных линий, создайте следующий файл:
~/.config/gtk-3.0/gtk.css
/* Remove dotted lines from GTK+ 3 applications */ .undershoot.top, .undershoot.right, .undershoot.bottom, .undershoot.left { background-image: none; }
GTK+ и HTML с Broadway
GDK Broadway обеспечивает поддержку для отображения GTK+ приложений в веб-браузере, используя HTML5 и веб-соккеты. [3]
При использовании broadwayd, укажите номер дисплея для использования с префиксом двоеточие, похожий на X. На дисплее по умолчанию номер 1.
$ display_number=:5
Запустите его.
$ broadwayd $display_number
Порт используемый по умолчанию
port = 8080 + ($display_number - 1)
Укажите ваш браузер http://localhost:port
Запускаемые приложения
$ GDK_BACKEND=broadway BROADWAY_DISPLAY=$display_number <<app>>
В качестве альтернативы, можно установить адрес и порт
$ broadwayd --port $port_number --address $address $display_number
Решение проблем
Различные темы приложений между GTK+ 2 и GTK+ 3
В общем, если выбранная тема имеет поддержку как для GTK+ 2 и GTK+ 3, тема будет применяться для всех GTK+ 2 и GTK+ 3 приложений. Если выбранная тема имеет поддержку только GTK+ 2, будет использоваться для GTK+ 2 приложений, и GTK+ тема по умолчанию будет использоваться для GTK+ 3 приложений. Если выбранная тема имеет поддержку только GTK+ 3, то будет использована для GTK+ 3 приложений, и GTK+ тема по умолчанию будет использоваться для GTK+ 2 приложений. Таким образом, для согласования тем приложений, лучше использовать тему, которая имеет поддержку как GTK+ 2 так и GTK+ 3.
Вы можете найти установленные темы на вашей системе с поддержкой обоих версий GTK+ 2 и GTK+ 3, используя эту команду (не работает с именами, содержащими пробелы):
find $(find ~/.themes /usr/share/themes/ -wholename "*/gtk-3.0" | sed -e "s/^\(.*\)\/gtk-3.0$/\1/") -wholename "*/gtk-2.0" | sed -e "s/.*\/\(.*\)\/gtk-2.0/\1"/
Тема не применяется к root-приложениям
Пользовательский файл темы ($XDG_CONFIG_HOME/gtk-3.0/settings.ini
, ~/.gtkrc-2.0
) не может быть прочитан другими аккаунтами, выбранная тема не будет применяться к приложениям X запущенных от root. Возможное решение включает в себя:
- Настройку файла темы для всей системы:
/etc/gtk-3.0/settings.ini
(GTK+ 3) или/etc/gtk-2.0/gtkrc
(GTK+ 2) - Создание символьной ссылки, т.е.
# ln -s /home/[Имя_Пользователя]/.gtkrc-2.0 /root/.gtkrc-2.0
- Смена темы от root
# gksu lxappearance
- Используйте настройки демона (это в большинстве окружений рабочего стола). Вариант desktop-agnostic использует XSettings доступный в AUR xsettingsd-gitAUR.
Клиентские декорации
С версии GTK 3.12 введены Клиентские декорации, которые действуют в титлбаре от оконного менеджера. Это может решить такие вопросы как двойной титл-бар, нет титл-бара вообще, или двойная тень с включенным композитингом.
Чтобы удалить тень и зазор вокруг окон (например, в сочетании с тайловым оконным менеджером), создайте следующий файл:
~/.config/gtk-3.0/gtk.css
.window-frame, .window-frame:backdrop { box-shadow: 0 0 0 black; border-style: none; margin: 0; border-radius: 0; } .titlebar { border-radius: 0; } .window-frame.csd.popup { box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.13); } .header-bar { background-image: none; background-color: #ededed; box-shadow: none; } /* You may want to use this if you don't like the double title. GtkLabel.title { opacity: 0; }*/
Чтобы настроить кнопки на панели заголовка, используйте опцию gtk-decoration-layout
. [4] Приведенный ниже пример удаляет все кнопки:
~/.config/gtk-3.0/settings.ini
gtk-decoration-layout=menu:
Седиль ç/Ç вместо ć/Ć (характерно в основном для Французского языка)
Смотрите [5], и [6][устаревшая ссылка 2020-08-02] для решения проблемы с использованием Xcompose (US international layout).
Подавить предупреждение о accessibility bus
Если вы не используете функции Gnome Accessibility (специальных возможностей),вы можете получать такие предупреждения :
WARNING **: Couldn't connect to accessibility bus:
вы можете подавить предупреждение, запуская программу с NO_AT_BRIDGE=1
или установить в качестве глобальной переменной окружения
Не соответствует цвет фона в строке заголовка (TitleBar)
Если вы используете оконный менеджер который использует тему декорации окон, которая имитирует цвет темой фона GTK+, вы можете обнаружить, что цвет заголовка окна больше не совпадает полностью с цветом приложений в некоторых приложениях GTK+ 3. В качестве обходного пути, создайте следующий файл:
~/.config/gtk-3.0/gtk.css
/* Always use background color */ GtkWindow { background-color: @theme_bg_color; } /* Fix tooltip background override */ .tooltip { background-color: rgba(0, 0, 0, 0.8); } .tooltip * { background-color: transparent; } /* Fix Nautilus desktop window background override */ NautilusWindow { background-color: transparent; }
Неправильный фокус событий в тайловых оконных менеджерах
Определите GDK_CORE_DEVICE_EVENTS=1
для использования стиля ввода GTK2, вместо xinput2. [8]
Поддержка эскизов для диалога файлов GTK + 2
Установите gtk2-patched-filechooser-icon-viewAUR чтобы получить возможность просмотра файлов в виде миниатюр, вместо списка, в файловом браузере GTK +.
Примеры
Пример настройки GTK+ 2:
~/.gtkrc-2.0
# GTK theme include "/usr/share/themes/Clearlooks/gtk-2.0/gtkrc" # Font style "myfont" { font_name = "DejaVu Sans 8" } widget_class "*" style "myfont" gtk-font-name = "DejaVu Sans 8" # Icon theme gtk-icon-theme-name = "Tango" # Toolbar style gtk-toolbar-style = GTK_TOOLBAR_ICONS
GTK+ 3 пример настройки конвертации GTK+ 2.x в GTK+ 3.x с lxappearance:
$XDG_CONFIG_HOME/gtk-3.0/settings.ini
[Settings] gtk-theme-name=TraditionalOk gtk-icon-theme-name=Fog gtk-font-name=Luxi Sans 12 gtk-cursor-theme-name=mate gtk-cursor-theme-size=24 gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR gtk-button-images=1 gtk-menu-images=1 gtk-enable-event-sounds=0 gtk-enable-input-feedback-sounds=0 gtk-xft-antialias=1 gtk-xft-hinting=1 gtk-xft-hintstyle=hintslight gtk-xft-rgba=rgb