GTK+ (Українська)
Дивіться також |
---|
GNU Project (Українська) |
GNOME |
QT |
З сайту GTK+:
- GTK+, або GIMP (Українська) Toolkit - це багатоплатформний інструментарій для створення графічних інтерфейсів користувача. Пропонуючи повний набір віджетів, GTK+ підходить для проектів, починаючи від невеликих одноразових інструментів до повноцінних пакетів програм.
GTK +, GIMP Toolkit, спочатку був створений Проектом GNU для GIMP, але тепер це дуже популярний інструментарій з прив'язками для багатьох мов програмування. У цій статті розглядаються інструменти, які використовуються для налаштування теми GTK+, стилю, піктограм, розміру шрифту та шрифту, а також детального ручного налаштування.
Contents
- 1 Встановлення
- 2 Теми
- 3 Інструменти налаштування
- 4 Налаштування
- 4.1 Основна конфігурація теми
- 4.2 Темний варіант теми
- 4.3 Комбінації клавіш
- 4.4 Затримка меню GNOME
- 4.5 Зменшення розмірів віджетів
- 4.6 Сховати кнопки CSD
- 4.7 Вимкнути вставку на середню кнопку миші
- 4.8 Місце запуску діалогу вибору файлу
- 4.9 Застаріла поведінка прокрутки
- 4.10 Вимкнути накладанням смуг прокручування
- 4.11 Приклади
- 5 Бекенди GDK
- 6 Вирішення проблем
- 6.1 Різні теми між додатками GTK+ 2 і GTK+ 3
- 6.2 Тема не застосовується до програм з правами root
- 6.3 Декорації на стороні клієнта
- 6.4 Cedilla ç/Ç замість ć/Ć
- 6.5 Придушити попередження про доступність шини
- 6.6 Невідповідність кольорів тла заголовка
- 6.7 Неправильний фокус подій з тайловими віконнмми менеджерами
- 6.8 GTK+ 3 без polkit
- 6.9 Деякі теми GTK + 2 змінюють лише палітру кольорів інтерфейсу користувача
- 7 Дивіться також
- 8 Підтвердження
1 Встановлення
Нині в репозиторіях доступні дві версії GTK+. Їх можна встановити за допомогою наступних пакетів:
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
- Для 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
- 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
- Deepin — Типова тема для робочого столу Deepin. Включає: deepin, deepin-dark
- GNOME Extra Themes — Додаткові теми для робочого столу GNOME. Включають: Adwaita, Adwaita-dark, HighContrast
- Materia — Плоска Material Design тема для GTK3, GTK2 і GNOME-Shell.
- MATE Themes — Типові теми для робочого столу MATE. Включають: BlackMATE, Blue-Submarine, BlueMenta, ContrastHighInverse, Green-Submarine, GreenLaguna, Menta, TraditionalGreen, TraditionalOk
- Numix — Плоска і легка тема з сучасним виглядом (GNOME, Openbox, Unity, Xfce). Включає: Numix
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).
- Oo-mox — Графічний додаток для створення різноманітних колірних варіантів тем Numix і Flat-Plat (GTK+ 2 і 3), теми піктограм Archdroid і Gnome-Colors. Також дозволяє генерувати попередньо масштабовані теми GTK+ 2 для дисплеїв HiDPI.
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+ 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+:
~/.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.
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 Неправильний фокус подій з тайловими віконнмми менеджерами
Встановіть 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.