GTK (Русский)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Состояние перевода: На этой странице представлен перевод статьи GTK+. Дата последней синхронизации: 26 февраля 2016. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Tango-preferences-desktop-locale-modified.pngПеревод этой статьи или раздела не отражает оригинальное содержание.Tango-preferences-desktop-locale-modified.png

Причина: Last updated in 2016, out of sync with English page (Discuss)

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 по умолчанию.
https://invent.kde.org/plasma/breeze-gtk || breeze-gtk
  • Deepin — Тема по умолчанию для рабочего стола Deepin.
https://gitcafe.com/Deepin/deepin-gtk-theme || deepin-gtk-theme
  • MATE Themes — Тема по умолчанию для Рабочего стола MATE. Включает: BlackMATE, BlueMenta, Blue-Submarine, ContrastHigh, ContrastHighInverse, GreenLaguna, Green-Submarine, Menta, TraditionalGreen, TraditionalOk, TraditionalOkTest
https://github.com/mate-desktop/mate-themes || mate-themes
  • Numix — Плоская и легкая тема с современным видом (GNOME, Openbox, Unity, Xfce).
https://github.com/numixproject/numix-gtk-theme || numix-gtk-theme-gitAUR
  • Ceti-2 — Тема для GTK 3, GTK 2 и Gnome-Shell.
https://horst3180.deviantart.com/art/Ceti-2-Theme-489193140 || ceti-2-themesAUR
  • Clearlooks-Phénix — GTK3 тема визуально близкая к Clearlooks.
https://github.com/jpfleury/clearlooks-phenix || clearlooks-phenix-gtk-themeAUR
  • Greybird — Серая и синяя тема Xfce, используемая по умолчанию в Xubuntu 12.04.
https://github.com/shimmerproject/Greybird || xfce-theme-greybirdAUR
  • Orion — Современная, светлая тема GTK.
https://deviantart.com/view/281431756 || gtk-theme-orionAUR
  • Vertex — Тема для GTK 3, GTK 2, Gnome-Shell и Cinnamon.
https://horst3180.deviantart.com/art/Vertex-Theme-470663601 || vertex-themesAUR
  • Zuki — Темы для GTK, gnome-shell и др.
https://github.com/lassekongo83/zuki-themes || zuki-themesAUR

Поддерживается только 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
https://projects.kde.org/projects/playground/artwork/oxygen-gtk/ || oxygen-gtk2AUR
  • Aurora Gtk Engine — Последний участник семейства Clearlooks.
https://gnome-look.org/content/show.php/Aurora+Gtk+Engine?content=56438 || gtk-engine-auroraAUR
  • Openbox Themes — Различные темы для Оконного менеджера Openbox.
https://www.debian.org/ || openbox-themesAUR
  • QtCurve — Настраиваемый набор стилей виджетов для KDE и Gtk.
https://projects.kde.org/projects/playground/base/qtcurve || qtcurve-gtk2

Есть ряд дополнительных тем 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).
https://wiki.lxde.org/en/LXAppearance || lxappearance

Поддерживается только GTK+ 2:

  • GTK+ Change Theme — Маленькая программа, которая позволяет изменять вашу GTK+ 2.0 тему (считается лучшей альтернативой switch2).
http://plasmasturm.org/code/gtk-chtheme/ || gtk-chtheme
  • GTK+ Preference Tool — Переключает GTK+ темы и меняет шрифт.
http://gtk-win.sourceforge.net/home/index.php/Main/GTKPreferenceTool || gtk2_prefsAUR
  • GTK+ Theme Switch — Простой переключатель GTK+ тем.
http://muhri.net/nav.php3?node=gts || gtk-theme-switch2AUR

Настройка

Параметры 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 свойства GtkSettingsGTK+ 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+.
Совет: Наследство поведения прокрутки может быть надежно достигнуто, просто используя правую кнопку мыши вместо левой кнопки мыши.

До 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; 
}

Неправильный фокус событий в тайловых оконных менеджерах

Примечание: Это отключит поддержку Сенсорного экрана для приложений GTK3. [7]

Определите 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

Смотрите также