GTK+ (Русский)

From ArchWiki
Jump to: navigation, search
Состояние перевода: На этой странице представлен перевод статьи GTK+. Дата последней синхронизации: 26 февраля 2016. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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://quickgit.kde.org/?p=breeze-gtk.git || breeze-gtk
  • Deepin — Тема по умолчанию для рабочего стола Deepin.
https://gitcafe.com/Deepin/deepin-gtk-theme || deepin-gtk-theme
  • GNOME Standard Themes — Тема по умолчанию для Рабочего стола GNOME. Включает: Adwaita, HighContrast
https://github.com/GNOME/gnome-themes-standard || gnome-themes-standard
  • 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
  • MATE Themes Extras — Коллекция GTK2/3 тем для Рабочего стола MATE. Включает: DeLorean-Dark, DeLorean, GnomishBeige
https://github.com/NiceandGently/mate-themes-extras || mate-themes-extras[ссылка недействительна: package not found]
  • Numix — Плоская и легкая тема с современным видом (GNOME, Openbox, Unity, Xfce).
https://numixproject.org/ || numix-themes[ссылка недействительна: replaced by numix-gtk-theme]
  • Arc — Плоская тема с современным дизайном и прозрачными элементами.
https://github.com/horst3180/Arc-theme || gtk-theme-arc-gitAUR
  • Ceti-2 — Тема для GTK 3, GTK 2 и Gnome-Shell.
http://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
  • Gnome-breeze — Тема GTK создана в соответствии с новой Plasma 5 Breeze.
https://github.com/dirruk1/gnome-breeze || gnome-breeze-gitAUR
  • Greybird — Серая и синяя тема Xfce, используемая по умолчанию в Xubuntu 12.04.
http://shimmerproject.org/our-projects/greybird/ || xfce-theme-greybirdAUR
  • Orion — Современная, светлая тема GTK.
http://deviantart.com/view/281431756 || gtk-theme-orionAUR
  • Vertex — Тема для GTK 3, GTK 2, Gnome-Shell и Cinnamon.
http://horst3180.deviantart.com/art/Vertex-Theme-470663601 || vertex-themesAUR
  • Zukitwo — Темы для GTK, gnome-shell и др.
http://gnome-look.org/content/show.php/Zukitwo?content=140562 || zukitwo-themesAUR[ссылка недействительна: сохранено в aur-mirror]

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

  • GTK+ Engines — Движок тем для GTK+ 2. Включает: Clearlooks, Crux, Industrial, Mist, Redmond, ThinIce
https://github.com/GNOME/gtk-engines || gtk-engines
  • Xfce Gtk+ Engine — Xfce Gtk+-2.0 движок и темы
http://git.xfce.org/xfce/gtk-xfce-engine/ || gtk-xfce-engine
  • Oxygen-Gtk — Порт стандартных тем KDE виджетов (Oxygen) в GTK2
https://projects.kde.org/projects/playground/artwork/oxygen-gtk/ || oxygen-gtk2
  • Aurora Gtk Engine — Последний участник семейства Clearlooks.
http://gnome-look.org/content/show.php/Aurora+Gtk+Engine?content=56438 || gtk-engine-aurora
  • Openbox Themes — Различные темы для Оконного менеджера Openbox.
https://www.debian.org/ || openbox-themes
  • 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 прочитайте различный вид GTK+ 2 и GTK+ 3 приложений.

Средства настройки

Большинство крупных окружений рабочего стола предоставляют инструменты для настройки тем GTK+, иконок, шрифта и размера шрифта, и управляют этими настройками с помощью XSettings:

  • Если вы используете Cinnamon, используйте Themes tool (cinnamon-settings themes): идите в Параметры > Параметры системы > Оформление.
  • Если вы используете Enlightenment: идите в Settings > All > Look > Application Theme.
  • Если вы используете GNOME, используйте Gnome Tweak Tool (gnome-tweak-tool): установите gnome-tweak-tool, идите в GNOME Tweak Tool > Внешний вид.
  • Если вы используете 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).
http://wiki.lxde.org/en/LXAppearance || lxappearance

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

  • GTK-KDE4 — Приложение, которое позволяет изменять стиль и шрифт GTK+2 приложений в KDE4.
http://kde-look.org/content/show.php?content=74689 || gtk-kde4AUR
После установки, gtk-kde4 также можно найти в System Settings > Lost and Found > GTK style.
  • 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_prefs
  • GTK+ Theme Switch — Простой переключатель GTK+ тем.
http://muhri.net/nav.php3?node=gts || gtk-theme-switch2

Настройка

Параметры 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 свойства) в справочном руководстве программирования 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] и [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] для решения проблемы с использованием 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

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