GTK+ (Українська)

From ParabolaWiki
Jump to: navigation, search

i18n


Dansk – Deutsch – English – Esperanto – Español – Euskera – Français – Galego – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Polski – Português – Română – Slovenský – Suomi – Svenska – Türkçe – Česky – Ελληνικά – Български – Русский – Српски – Українська – العربيّة – עברית – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

Дивіться також
GNU Project (Українська)
GNOME
QT
GTK logo.png

З сайту GTK+:

GTK+, або GIMP (Українська) Toolkit - це багатоплатформний інструментарій для створення графічних інтерфейсів користувача. Пропонуючи повний набір віджетів, GTK+ підходить для проектів, починаючи від невеликих одноразових інструментів до повноцінних пакетів програм.

GTK +, GIMP Toolkit, спочатку був створений Проектом GNU для GIMP, але тепер це дуже популярний інструментарій з прив'язками для багатьох мов програмування. У цій статті розглядаються інструменти, які використовуються для налаштування теми GTK+, стилю, піктограм, розміру шрифту та шрифту, а також детального ручного налаштування.

Contents

1 Встановлення

Нині в репозиторіях доступні дві версії GTK+. Їх можна встановити за допомогою наступних пакетів:

  • GTK+ 3.x доступний з пакетом gtk3.
  • GTK+ 2.x доступний с пакетом gtk2.

2 Теми

У GTK+ 2 темою за замовчуванням є Raleigh (у ArchLinux Adawaita). У GTK+ 3 темою за замовчуванням є Adwaita, але також включені теми HighContrast, HighContrastInverse і Raleigh.

Щоб форсувати певну тему, встановіть такі змінні середовища:

  • Для GTK+ 2 використовуйте GTK2_RC_FILES. Наприклад, щоб запустити GIMP (Українська) з темою Raleigh:
$ GTK2_RC_FILES=/usr/share/themes/Raleigh/gtk-2.0/gtkrc gimp
Порада: gtkrc також може бути користувацьким файлом у вашому домашньому каталозі, створеному будь-яким з інструментів налаштування. Дивіться приклади.
  • Для GTK+ 3 використовуйте GTK_THEME. Наприклад, для запуску калькулятора GNOME з темним варіантом Adwaita:
$ GTK_THEME=Adwaita:dark gnome-calculator
Примітка: Щоб застосувати вищевказане до ярликів на робочому столі (або до засобів запуску), див. зміна змінних середовища.

2.1 Список тем

Більше тем можна встановити з офіційних репозиторіїв. Щоб встановити теми вручну перемістіть іх в каталог ~/.themes/ або ~/.local/share/themes/.

Підтримуються GTK+ 2 і GTK+ 3.20 або новіші:

  • Adapta — Адаптивна тема GTK+ на основі принципів Material Design. Включає: Adapta, Adapta-Eta, Adapta-Nokto, Adapta-Nokto-Eta
https://github.com/tista500/Adapta || adapta-gtk-theme || GPLv2
  • Arc — Плоска тема з сучасним виглядом і прозорими елементами. Включає: Arc, Arc-Dark, Arc-Darker
https://github.com/nicohood/arc-theme || з прозорістю: arc-gtk-theme, без прозорості: arc-solid-gtk-theme || GPLv3
  • Breeze-gtk — Версія GTK+ теми віджетів KDE за замовчуванням. Включає: Breeze, Breeze-Dark
https://github.com/KDE/breeze-gtk || breeze-gtk || LGPLv2.1
  • Deepin — Типова тема для робочого столу Deepin. Включає: deepin, deepin-dark
https://github.com/linuxdeepin/deepin-gtk-theme || deepin-gtk-theme || GPLv3
  • GNOME Extra Themes — Додаткові теми для робочого столу GNOME. Включають: Adwaita, Adwaita-dark, HighContrast
https://gitlab.gnome.org/GNOME/gnome-themes-extra || gnome-themes-extra || LGPLv2.1
  • Materia — Плоска Material Design тема для GTK3, GTK2 і GNOME-Shell.
https://github.com/nana-4/materia-theme || materia-gtk-theme || GPLv2
  • MATE Themes — Типові теми для робочого столу MATE. Включають: BlackMATE, Blue-Submarine, BlueMenta, ContrastHighInverse, Green-Submarine, GreenLaguna, Menta, TraditionalGreen, TraditionalOk
https://github.com/mate-desktop/mate-themes || mate-themes || LGPLv2.1
  • Numix — Плоска і легка тема з сучасним виглядом (GNOME, Openbox, Unity, Xfce). Включає: Numix
https://github.com/shimmerproject/Numix || numix-gtk-theme || LGPLv2.1
Примітка: Оскільки GTK+ 3 швидко змінюється, теми часто вимагають переробки після оновлення GTK+ 3. З цієї причини не всі теми GTK+ 3 можуть виглядати так, як виглядали при використанні попередньої версії GTK+ 3.

2.2 GTK+ та Qt

Якщо у вас встановлення програми GTK+ та Qt (інструментарій KDE), то ви знаєте, що їх зовнішній вигляд не добре поєднується. Якщо ви бажаєте, щоб зовнішній вигляд ваших програми GTK+ відповідав Qt, будь ласка, прочитайте Єдиний вигляд для додатків Qt і GTK+.

3 Інструменти налаштування

Більшість основних середовища робочого столу надають інструменти для налаштування теми, значків, шрифту та його розміру для GTK+ та керування цими налаштуваннями через -spec-0.5.html XSettings:

  • Якщо ви використовуєте Cinnamon, використовуйте інструмент "Теми" (cinnamon-settings themes): перейдіть у Системні налаштування > Теми.
  • Якщо ви використовуєте Enlightenment: перейдіть у Налаштування > Всі > Вигляд > Тема додатків.
  • Якщо ви використовуєте GNOME, використовуйте GNOME Tweaks (gnome-tweaks): встановіть gnome-tweaks.
  • Якщо ви використовуєте MATE, використовуйте інструмент "Налаштування зовнішнього вигляду" (mate-appearance-properties): перейдіть у Система > Налаштування > Зовнішній вигляд.
  • Якщо ви використовуєте Xfce, використовуйте інструмент "Налаштування зовнішнього вигляду": перейдіть у Налаштуванея > Зовнішній вигляд.

Інші графічні інструменти зазвичай перезаписують файли конфігурації.

Підтримуються як GTK+ 2, так і GTK+ 3:

  • KDE GTK Configurator — Додаток, що дозволяє змінювати стиль і шрифт GTK+ 2 і GTK+ 3 додатків.
https://cgit.kde.org/kde-gtk-config.git || kde-gtk-config || GPLv2
Після встановлення, kde-gtk-config також можна знайти в Системних налаштування > Стиль програми > Стиль програм GNOME/GTK.
  • LXAppearance — Графічний незалежний інструмент конфігурації стилів GTK+ 2 і GTK+ 3 з проекту LXDE (він не вимагає інших частин LXDE).
http://wiki.lxde.org/en/LXAppearance || lxappearance || GPLv2
  • Oo-mox — Графічний додаток для створення різноманітних колірних варіантів тем Numix і Flat-Plat (GTK+ 2 і 3), теми піктограм Archdroid і Gnome-Colors. Також дозволяє генерувати попередньо масштабовані теми GTK+ 2 для дисплеїв HiDPI.
https://github.com/actionless/oomox || GPLv3
Примітка: Розробку більшості інструментів налаштування лише GTK+ 2 припинено, але ви все ще можете їх знайти та завантажити.

4 Налаштування

Налаштування GTK+ можна вказувати вручну в файлах конфігурації, але середовище та додатки для робочого столу можуть змінити ці налаштування. Залежно від версії GTK+ ці файли знаходяться за адресами:

  • GTK+ 2 для конкретного користувача: ~/.gtkrc-2.0
  • GTK+ 2 загалоносистемний: /etc/gtk-2.0/gtkrc
  • GTK+ 3 для конкретного користувача: $XDG_CONFIG_HOME/gtk-3.0/settings.ini, or $HOME/.config/gtk-3.0/settings.ini if $XDG_CONFIG_HOME is not set
  • GTK+ 3 загалоносистемний: /etc/gtk-3.0/settings.ini
Примітка:
  • Дивіться властивості GTK+ 3 GtkSettingsвластивості GTK+ 2) у посібнику з програмування з GTK+ для повного списку поточних підтримуваних параметрів конфігурації GTK+.
  • Деякі налаштування, описані нижче (такі, як gtk-icon-sizes) застаріли та ігноруються починаючи з GTK+ 3.10.
  • Якщо ви редагуєте ваші конфігураційні файли GTK+, зміни відображатимуться лише для зоново запущених програм.

4.1 Основна конфігурація теми

Щоб змінити тему, значки, шрифт і розмір шрифту 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
Примітка: Назва теми піктограм - це ім'я, визначене в індексному файлі теми, не назва каталогу з темою.

4.2 Темний варіант теми

Деякі теми GTK+ 3 мають темний варіант, але він використовується тільки за замовчуванням, коли програма явно вимагає. Щоб використовувати темний варіант теми з усіма додатками GTK+ 3, встановіть:

gtk-application-prefer-dark-theme = true

4.3 Комбінації клавіш

Комбінації клавіш (інакше відомі як прискорювачі у GTK+) можуть бути змінені шляхом наведення миші на відповідний пункт меню і натискання потрібної комбінації клавіш. Щоб увімкнути цю функцію, встановіть:

gtk-can-change-accels = 1

4.3.1 Комбінації клавіш Emacs

Щоб мати Emacs-подібні комбінації клавіш у програмах GTK+, додайте наступне:

~/.gtkrc-2.0
gtk-key-theme-name = "Emacs"
~/.config/gtk-3.0/settings.ini
[Settings]
gtk-key-theme-name = Emacs

Для GTK+ 3 також виконайте:

$ gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"

XFCE має подібне налаштування:

$ xfconf-query -c xsettings -p /Gtk/KeyThemeName -s Emacs

Конфігураційні файли в /usr/share/themes/Emacs/ визначають, що таке комбінації клавіш Emacs, їх можна змінити. Копіювання розділів до файлу користувачів ~/.gtkrc-2.0 дає змогу вносити зміни для кожного користувача.

4.4 Затримка меню GNOME

Цей параметр контролює затримку між наведенням миші на меню та відкриттям меню. Ця затримка вимірюється в мілісекундах.

gtk-menu-popup-delay = 0

4.5 Зменшення розмірів віджетів

Якщо у вас невеликий екран, або ви просто не любите великих значків і віджетів, ви можете легко змінити їх розміри.

Щоб мати іконки без тексту на панелях інструментів (допустимі значення) використовуйте:

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

Також див. Як зробити компактну тему GNOME.

4.6 Сховати кнопки CSD

Щоб видалити кнопки з розгортання та згортання вікон GTK+ 3:

gtk-decoration-layout=menu:close

Дивіться GTK decoration layout.

4.7 Вимкнути вставку на середню кнопку миші

Щоб вимкнути вставку на середню кнопку миші:

gtk-enable-primary-paste=false

4.8 Місце запуску діалогу вибору файлу

Відкрийте вибір файлів у поточному робочому каталозі, а не в недавньому розташуванні. Зазвичай поточний робочий каталог є каталогом Home (Домівка).

GTK+ 3

Змініть налаштування наступною командою:

$ gsettings set org.gtk.Settings.FileChooser startup-mode cwd

GTK+ 2

Додайте наступне до ~/.config/gtk-2.0/gtkfilechooser.ini:

StartupMode=cwd

4.9 Застаріла поведінка прокрутки

Примітка: Ці налаштування не підтримуються всіма програмами GTK+.
Порада: Застарілу поведінку прокрутки можна надійно досягти простим натисканням правої кнопки миші замість лівої кнопки миші.

До GTK+ 3.6 натискання на будь-яку сторону повзунка в смужці прокрутки переміщувало смугу прокрутки в напрямку натискання приблизно на одну сторінку. Оскільки GTK+ 3.6, повзунок переходить безпосередньо до позиції клацання. Таку поведінку можна скасувати в деяких програмах, створивши файл із вмістом, наведеним нижче:

~/.config/gtk-3.0/settings.ini
[Settings]
gtk-primary-button-warps-slider = false

4.10 Вимкнути накладанням смуг прокручування

Оскільки у GTK+ 3.15 увімкнено накладанням смуг прокручування за замовчуванням, що означає, що смуги прокручування будуть показуватись тільки при наведенні курсору в додатках GTK+ 3. Таку поведінку можна скасувати, встановивши наступну змінну середовища: GTK_OVERLAY_SCROLLING=0. Див. a:Environment_variables#Graphical_environment.

GTK+ 4 більше не підтримуватиме GTK_OVERLAY_SCROLLING. Його вже було видалено з основної вітки. Що стосується GTK+ 4, накладення смуг прокручування є частиною інструментарію. Загальний перемикач видалено, щоб запобігти поломкам програм, які не були протестовані обома комбінаціями. Щоб дозволити розробникам додатків вирішувати, як повинні виглядати їхні програми, інструментарій замість цього надає механізм відмови або додавання налаштувань для користувачів. Функцію gtk_scrolled_window_set_overlay_scrolling() можна використовувати для вмикання/вимикання накладання смуг прокручування для кожного додатку. Розробники програм можуть додатково використовувати GSettings, щоб прив'язати налаштування користувача до властивості.

4.10.1 Видалення індикаторів прокручування з накладенням

Позиції смуг прокручування вказуються тонкими пунктирними лініями у вікні програми. Ці пунктирні лінії будуть присутні навіть тоді, коли прокручування з накладанням буде вимкнено за допомогою змінної середовища, описаної у розділі вище. Щоб видалити лінії індикатора, створіть наступний файл:

~/.config/gtk-3.0/gtk.css
/* Видалення пунктирних лінії з програм GTK+ 3 */
undershoot.top, undershoot.right, undershoot.bottom, undershoot.left { background-image: none; }

4.11 Приклади

Приклади конфігурацій GTK+:

Примітка: Може ігноруватися деякими середовищами робочого столу (наприклад GNOME).
~/.gtkrc-2.0
gtk-theme-name="Arc-Dark"
gtk-icon-theme-name="breeze-dark"
gtk-font-name="Sans 11"
gtk-cursor-theme-name="Breeze_Amber"
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
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"
~/.config/gtk-3.0/settings.ini
[Settings]
gtk-theme-name=Arc-Dark
gtk-icon-theme-name=breeze-dark
gtk-font-name=Sans 11
gtk-cursor-theme-name=Breeze_Amber
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
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
# gtk-decoration-layout=menu:close
# gtk-application-prefer-dark-theme=1

5 Бекенди GDK

GDK (базовий рівень абстракції GTK +) підтримує декілька бекендів для відображення додатків GTK+. Стандартний бекенд - X11.

5.1 Бекенд Broadway

Бекенд GDK Broadway надає підтримку для відображення програм GTK+ у веб-переглядачі, використовуючи HTML5 і веб-сокети.

При використанні broadwayd, вкажіть номер дисплея, який буде використовуватися з префіксом двокрапки, подібний до X. Типовий номер дисплея - 1.

$ display_number=:5

Запустіть його.

$ broadwayd $display_number 

Порт, що використовується за замовчуванням

port = 8080 + $display_number

Відкрийте у вашому браузері http://127.0.0.1:port

Щоб запустити програми виконайте:

$ GDK_BACKEND=broadway BROADWAY_DISPLAY=$display_number <<app>>

Також можна встановити адресу та порт самостійно:

$ broadwayd --port $port_number --address $address $display_number

5.2 Бекенд Wayland

Бекенд GDK Wayland можна увімкнути встановивши змінну середовища GDK_BACKEND=wayland.

Порада: Щоб вимкнути декорування вікон GTK+ у Wayland, встановіть пакет gtk3-optional-csd з AUR і встановіть змінну середовища GTK_CSD=0.

6 Вирішення проблем

6.1 Різні теми між додатками GTK+ 2 і GTK+ 3

Загалом, якщо вибрана тема підтримує як GTK+ 2, так і GTK+ 3, тема буде застосована до всіх програм GTK+ 2 і GTK+ 3. Якщо вибрана тема підтримує лише GTK+ 2, вона буде використана для програм GTK+ 2, а для GTK+ 3 буде використано стандартну тему GTK+. Якщо вибрана тема підтримує лише GTK+ 3, вона буде використана для програм GTK+ 3, а для 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"/

6.2 Тема не застосовується до програм з правами root

Оскільки файли тем користувача ($XDG_CONFIG_HOME/gtk-3.0/settings.ini, ~/.gtkrc-2.0) не читаються іншими обліковими записами, вибрана тема не застосовуватиметься до X-додатків, які виконуються від root. Можливі рішення включають:

  • Створіть символічні посилання(symlinks), наприклад:
# ln -s /home/[username]/.gtkrc-2.0 /etc/gtk-2.0/gtkrc
# ln -s /home/[username]/.config/gtk-3.0/settings.ini /etc/gtk-3.0/settings.ini
  • Налаштуйте загальносистемні файли теми: /etc/gtk-3.0/settings.ini (GTK+ 3) or /etc/gtk-2.0/gtkrc (GTK+ 2)
  • Налаштуйте тему як root
# sudo lxappearance
  • Використовуйте демон налаштувань (це робить більшість середовищ робочого столу). Інструмент діагностики з використанням XSettings доступний у репозиторіях під ім'ям xsettingsd.

6.3 Декорації на стороні клієнта

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;
}
/* Ви можете використовувати це, якщо вам не подобається подвійний заголовок.
GtkLabel.title {
    opacity: 0;
}*/

Щоб налаштувати кнопки в рядку заголовка, використовуйте налаштування gtk-decoration-layout.

Наведений нижче приклад видаляє усі кнопки:

~/.config/gtk-3.0/settings.ini
gtk-decoration-layout=menu:

6.4 Cedilla ç/Ç замість ć/Ć

Дивіться [1] і [2] для обходу з використанням Xcompose (міжнародна схема США).

6.5 Придушити попередження про доступність шини

Якщо ви не використовуєте жодної функції доступності Gnome, ви можете отримувати попередження, наприклад:

WARNING **: Couldn't connect to accessibility bus:

Щоб придушити ці попередження, виконайте програми з NO_AT_BRIDGE=1 або встановіть це як глобальну змінну середовища.

6.6 Невідповідність кольорів тла заголовка

Якщо ви використовуєте менеджер вікон, який використовує тему оформлення вікна, яка імітує колір тла теми GTK +, ви можете виявити, що колір заголовка не повністю відповідає кольору програми в деяких програмах GTK+ 3. Щоб вирішити цю проблему, створіть такий файл:

~/.config/gtk-3.0/gtk.css
/* Always use background color */
GtkWindow {
    background-color: @theme_bg_color;
}

/* Виправлення перевизначення фону підказки*/
.tooltip {
    background-color: rgba(0, 0, 0, 0.8);
}

.tooltip * {
    background-color: transparent;
}

/* Виправлення перевизначення фону вікна робочого столу Nautilus */
NautilusWindow {
     background-color: transparent; 
}

6.7 Неправильний фокус подій з тайловими віконнмми менеджерами

Примітка: Це вимикає плавну прокрутку та підтримку сенсорного екрану для програм GTK3. [3]

Встановіть GDK_CORE_DEVICE_EVENTS=1, щоб використовувати стиль вводу GTK2, замість xinput2. [4]

6.8 GTK+ 3 без polkit

GTK+ 3 залежить від polkit через colord, який необхідний для друку. Однак друк прекрасно працює без встановлення polkit; принаймні з монохромними принтерами і пакунками gtk3-print-backends=3.22.19-2 і colord=1.4.1-1.

6.9 Деякі теми GTK + 2 змінюють лише палітру кольорів інтерфейсу користувача

В залежності від підтримки GTK+ 2 вибраної теми елементи управління користувацького інтерфейсу можуть, як і раніше, мати зовнішній вигляд Raleigh за замовчуванням, можливо, з іншою палітрою кольорів. Це пов'язако з тим, що потрібно встановити движок GTK + 2 Murrine, який відсутній (програми GTK + 2 повинні скаржитися на це при виведенні стандартної помилки). Встановіть пакет gtk-engine-murrine.

7 Дивіться також

8 Підтвердження

Ця стаття базується на ArchWiki. Ми вилучили всі елементи, які не відповідають FSDG(оригінал).