GTK (Polski)
Ze strony GTK+:
- GTK+, lub GIMP Toolkit, to wieloplatformowy zestaw narzędzi do tworzenia graficznych interfejsów użytkownika. Oferując kompletny zestaw widżetów, GTK+ jest odpowiedni dla projektów, od małych jednorazowych narzędzi do kompletnych zestawów aplikacji.
GTK+, GIMP Toolkit, został stworzony przez GNU Project dla GIMPa, ale obecnie jest bardzo popularnym zestawem narzędzi z bindingami dla wielu języków. W tym artykule omówimy narzędzia używane do konfigurowania motywu, stylu, ikony, czcionki i rozmiaru czcionki GTK+, a także ręcznej konfiguracji szczegółów.
Instalacja
Dwie wersje GTK+ są obecnie dostępne w oficjalnych repozytoriach. Mogą być zainstalowane za pomocą następujących pakietów:
- GTK+ 3.x jest dostępny z pakietem gtk3.
- GTK+ 2.x jest dostępny z pakietem gtk2.
- GTK+ 1.x jest dostępny z pakietem gtkAUR.
Motywy
W GTK+ 2 domyślnym motywem jest Raleigh, ale Arch Linux ma niestandardowy plik konfiguracyjny znajdujący się w /usr/share/gtk-2.0/gtkrc
, który ustawia domyślny motyw na Adwaita. W GTK+ 3 domyślnym motywem jest Adwaita, ale są również uwzględnione motywy HighContrast, HighContrastInverse i Raleigh.
Żeby wymusić motyw , ustaw wartość środowiska.
- Dla GTK+ 2, użyj
GTK2_RC_FILES
. Dla przykładu żeby uruchomić GIMPa z motywem Raleigh:
$ GTK2_RC_FILES=/usr/share/themes/Raleigh/gtk-2.0/gtkrc gimp
gtkrc
może być także niestandardowym plikiem w twoim katalogu domowym utworzonym przez dowolne #Narzędzia konfiguracyjne.- Dla GTK+ 3, użyj
GTK_THEME
. Dla przykładu żeby uruchomić GNOME Kalkulator z czarnym wariantem Adwaita:
$ GTK_THEME=Adwaita:dark gnome-calculator
Więcej motywów może być zainstalowane z oficjalnych repozytoriów albo z AUR.
Manualnie rozpakuj motyw do katalogu ~/.themes/
lub ~/.local/share/themes
.
GTK+ 2 i GTK+ 3.20 lub nowsze wspierane:
- Adapta — Adaptacyjny motyw GTK+ oparty na wytycznych Material Design. Zawiera: Adapta, Adapta-Eta, Adapta-Nokto, Adapta-Nokto-Eta
- Arc — Płaski motyw o nowoczesnym wyglądzie i przezroczystych elementach. Zawiera: Arc, Arc-Dark, Arc-Darker
- https://github.com/nicohood/arc-theme || z przezroczystością: arc-gtk-theme, bez przezroczystości: arc-solid-gtk-theme
- Breeze — Wersja GTK+ domyślnego motywu KDE widgetów. Obejmuje: Breeze, Breeze-Dark
- Deepin — Domyślny motyw dla pulpitu Deepin. Zawiera: deepin, deepin-dark
- GNOME Extra Themes — Dodatkowe motywy dla pulpitu GNOME. Zawiera: Adwaita, Adwaita-dark, HighContrast
- MATE Themes — Domyślne motywy dla pulpitu MATE. Zawiera: BlackMATE, Blue-Submarine, BlueMenta, ContrastHighInverse, Green-Submarine, GreenLaguna, Menta, TraditionalGreen, TraditionalOk
- Materia Theme — Płaski motyw ala Material Design GTK3, GTK2, i GNOME-Shella.
- Numix — Płaski i jasny motyw o nowoczesnym wyglądzie (GNOME, Openbox, Unity, Xfce). Zawiera: Numix
- Blackbird — Ciemny motyw dla Xfce.
- Greybird — Szary i niebieski motyw Xfce, używany domyślnie w Xubuntu 12.04.
- Vertex — Motyw dla GTK 3, GTK 2, GNOME Shella i Cinnamona.
- Zuki — Motywy dla GTK, GNOME Shella i więcej.
Tylko GTK+ 2 wspierane:
- GTK+ Engines — Silniki motywów dla GTK+ 2. Zawiera: Clearlooks, Crux, Industrial, Mist, Redmond, ThinIce
- https://github.com/GNOME/gtk-engines[dead link 2020-12-26 ⓘ] || gtk-engines
- Xfce Gtk+ Engine — Silnik i motyw Xfce GTK+ 2.0
- http://git.xfce.org/xfce/gtk-xfce-engine/[dead link 2020-12-26 ⓘ] || gtk-xfce-engine[broken link: package not found]
- Oxygen-Gtk — Port domyślnego motywu KDE widżetów (Oxygen) do GTK2
- QtCurve — Konfigurowalny zestaw stylów widżetów dla KDE i GTK.
W AUR istnieje wiele dodatkowych motywów GTK+, na przykład: wyszukanie dla gtk-theme lub wyszukanie dla gtk2-theme.
GTK+ i Qt
Jeśli masz programy GTK+ i Qt (KDE), to wiesz, że ich wygląd nie miesza się dobrze. Jeśli chcesz, aby twoje style GTK+ pasowały do twoich stylów Qt, przeczytaj Uniform look for Qt and GTK applications.
Narzędzia konfiguracyjne
Większość głównych Środowisk graficznych udostępnia narzędzia do konfiguracji motywu, ikon, czcionki i rozmiaru czcionki GTK+ oraz zarządzania tymi ustawieniami za pomocą XSettings:
- Jeżeli korzystasz z Cinnamon, użyj programu Motywy (cinnamon-settings themes): idź do Ustawienia systemowe > Motywy.
- Jeżeli korzystasz z Enlightenment (Polski): idź do Ustawienia > Wszystkie > Wygląd > Motyw aplikacji.
- Jeżeli korzystasz z GNOME (Polski), użyj Dostrajanie środowiska GNOME (gnome-tweaks): zainstaluj pakiet gnome-tweaks.
- Jeżeli korzystasz z MATE, użyj programu Preferencje wyglądu (mate-appearance-properties): idź do System > Ustawienia > Wygląd.
- Jeżeli korzystasz z Xfce (Polski), użyj narzędzia Dostrajania: idź do Ustawienia > Wygląd.
Other GUI tools generally overwrite the pliki konfiguracyjne.
Również GTK+ 2 i GTK+ 3 są wspierane:
- KDE GTK Configurator — Aplikacja która pozwala zmienić styl i czcionke programów GTK+ 2 i GTK+ 3.
- https://invent.kde.org/plasma/kde-gtk-config || kde-gtk-config
- Po instalacji,
kde-gtk-config
może być również znaleziony w Ustawienia Systemowe > Styl Aplikacji > GTK.
- LXAppearance — Niezależne od pulpitu narzędzie do konfiguracji stylu GTK+ 2 i GTK+ 3 z projektu LXDE (nie wymaga innych części pulpitu LXDE)
- Oomox — Graficzna aplikacja do generowania różnych odmian kolorów motywu Numix i Flat-Plat (GTK+ 2 i 3), Archdroid i Gnome-Colors. Umożliwia także generowanie wstępnie skalowanych motywów GTK+ 2 dla wyświetlaczy HiDPI.
Tylko GTK+ 2 jest wspierane:
- GTK+ Change Theme — Mały program który pozwala tobie zmienić twój motyw GTK+ 2.0 (uważany jako lepsza alternatywa switch2).
- GTK+ Preference Tool — Selektor motywów GTK+ i przełącznik czcionek.
- GTK+ Theme Switch — Prosty przełącznik motywów GTK+.
Konfiguracja
Ustawienia GTK+ ustawienia można określić ręcznie w plikach konfiguracyjnych, ale środowiska graficzne i aplikacje mogą zastąpić te ustawienia. W zależności od wersji GTK+ pliki te znajdują się pod:
- GTK+ 2 specyficzne dla użytkownika:
~/.gtkrc-2.0
- GTK+ 2 systemowe ustawienia:
/etc/gtk-2.0/gtkrc
- GTK+ 3 specyficzne dla użytkownika:
$XDG_CONFIG_HOME/gtk-3.0/settings.ini
, or$HOME/.config/gtk-3.0/settings.ini
jeżeli$XDG_CONFIG_HOME
nie jest ustawione - GTK+ 3 systemowe ustawienia:
/etc/gtk-3.0/settings.ini
- Zobacz właściwości GtkSettings GTK+ 3 i właściwości GTK+ 2[dead link 2021-11-10 ⓘ]) w podręczniku do programowania GTK+ dla pełnej listy aktualnie obsługiwanych opcji konfiguracyjnych GTK+.
- Niektóre z opcji wypisanych poniżej (takie jak
gtk-icon-sizes
) są przestarzałe i ignorowane w GTK+ 3.10. - Jeżeli edytujesz swoje pliki konfiguracyjne GTK+, tylko na nowo otworzone aplikacje wyświetlą zmiany.
Podstawowa konfiguracja motywu
Pomiń ostrzeżenie dotyczące dostępności
Aby ręcznie zmienić motyw GTK+, ikony, czcionkę i rozmiar czcionki, dodaj następujące elementy do plików konfiguracyjnych, na przykład:
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
Ciemny wariant motywu
Niektóre motywy GTK+ 3 zawierają ciemny wariant motywu, ale jest on używany domyślnie tylko wtedy, gdy aplikacja wyraźnie go zażąda. Aby użyć ciemnego motywu w wszystkich aplikacjach GTK+ 3, ustaw:
gtk-application-prefer-dark-theme = true
Skróty klawiszowe
Skróty klawiaturowe (zwane również akceleratorami w GTK+) można zmienić, umieszczając kursor myszy nad odpowiednim elementem menu i naciskając odpowiednią kombinację klawiszy. Aby włączyć tę funkcję, ustaw:
gtk-can-change-accels = 1
Skróty klawiszowe Emacs
Aby mieć skróty klawiszowe podobne do Emacsa w aplikacjach GTK+, dodaj:
~/.gtkrc-2.0
gtk-key-theme-name = "Emacs"
~/.config/gtk-3.0/settings.ini
[Settings] gtk-key-theme-name = Emacs
Dla GTK+ 3 również uruchom:
$ gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"
XFCE ma również podobną opcje:
$ xfconf-query -c xsettings -p /Gtk/KeyThemeName -s Emacs
The config files in /usr/share/themes/Emacs/
determine what the Emacs bindings are, and can be changed. Copying sections to the users ~/.gtkrc-2.0
file allows for changes on a per user basis.
To ustawienie ustawia opóźnienie między wskazywaniem myszy w menu a otwieraniem menu. To opóźnienie jest mierzone w milisekundach.
gtk-menu-popup-delay = 0
Zmniejsz wielkość widżetów
Jeśli masz mały ekran lub po prostu nie lubisz dużych ikon i widżetów, możesz łatwo zmienić ich rozmiar.
Aby mieć ikony bez tekstu na paskach narzędzi (poprawne wartości), użyj
gtk-toolbar-style = GTK_TOOLBAR_ICONS
Żeby mieć mniejsze ikony użyj takiej linii:
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"
Albo żeby usunać ikony z przycisków kompletnie:
gtk-button-images = 0
Możesz usunać rownież ikony z menu:
gtk-menu-images = 0
Ukryj przyciski CSD
Żeby usunąć przyciski minimalizacji i maksymalizacji z okien gtk3:
gtk-decoration-layout=menu:close
aby ukryć również przycisk wyłączania użyj wzamian:
gtk-decoration-layout=menu:
Zobacz [3].
Wyłącz wklejanie myszką
Żeby wyłączyć wklejanie środkowym przyciskiem myszy:
gtk-enable-primary-paste=false
Lokalizacja startu selektora plików
Otwórz selektor plików w "bieżącym katalogu roboczym", a nie w ostatniej lokalizacji. Zwykle bieżący katalog roboczy jest katalogiem domowym.
GTK+ 3
Zmień konfiguracje poniższą komendą:
$ gsettings set org.gtk.Settings.FileChooser startup-mode cwd
GTK+ 2
Dodaj poniższą rzecz do ~/.config/gtk-2.0/gtkfilechooser.ini
:
StartupMode=cwd
Starsza metoda przewijania
Przed wersją GTK+ 3.6 kliknięcie dowolnej strony suwaka na pasku przewijania przesuwa pasek przewijania w kierunku kliknięcia o około jedną stronę. Od GTK+ 3.6 suwak przesunie się bezpośrednio na pozycję kliknięcia. To zachowanie można cofnąć w niektórych aplikacjach, tworząc plik z zawartością poniżej:
~/.config/gtk-3.0/settings.ini
[Settings] gtk-primary-button-warps-slider = false
Backendy GDK
GDK (podstawowa warstwa abstrakcji GTK+) wspiera kilka backendów żeby wyświetlać programy GTK+. Domyślnym backendem jest x11.
Backend Broadway
Backend GDK, Broadway dostarcza wsparcie do wyświetlania programów GTK+ w przeglądarce internetowej, używając HTML5 i web sockety. [4]
Używając broadwayd, określ numer wyświetlacza, który ma być użyty, poprzedzony dwukropkiem, podobnie jak w X. Domyślny numer wyświetlacza to 1.
$ display_number=:5
Wystartuj go.
$ broadwayd $display_number
Port używany domyślnie
port = 8080 + $display_number
Ustaw swoją przeglądarke na http://127.0.0.1:port
Żeby wystartować program
$ GDK_BACKEND=broadway BROADWAY_DISPLAY=$display_number <<app>>
Alternatywnie możesz ustawić adres i port
$ broadwayd --port $port_number --address $address $display_number
Backend Waylanda
The GDK Wayland backend can be enabled by setting the GDK_BACKEND=wayland
environment variable.
GTK_CSD=0
.Rozwiązywanie problemów
Różne motywy między aplikacjami GTK+ 2 i GTK+ 3
In general, if a selected theme has support for both GTK+ 2 and GTK+ 3, the theme will be applied to all GTK+ 2 and GTK+ 3 applications. If a selected theme has support for only GTK+ 2, it will be used for GTK+ 2 applications and the default GTK+ theme will be used for GTK+ 3 applications. If the selected theme has support for only GTK+ 3, it will be used for GTK+ 3 applications and the default GTK+ theme will be used for GTK+ 2 applications. Thus for application theme consistency, it is best to use a theme which has support for both GTK+ 2 and GTK+ 3.
You could find what themes installed on your system have both an GTK+ 2 and GTK+ 3 version by using this command (does not work with names containing spaces):
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"/
Motyw nie został zastosowany do programów roota
As user theme files ($XDG_CONFIG_HOME/gtk-3.0/settings.ini
, ~/.gtkrc-2.0
) are not read by other accounts, the selected theme will not apply to X applications run as root. Possible solutions include:
- Create symlinks, e.g
# 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
- Configure system-wide theme files:
/etc/gtk-3.0/settings.ini
(GTK+ 3) or/etc/gtk-2.0/gtkrc
(GTK+ 2) - Adjust the theme as root
# sudo lxappearance
- Use a settings daemon (this is what most desktop environments do). A desktop-agnostic variant using XSettings is available in the AUR under xsettingsd-gitAUR.
Dekoracje client-side
GTK 3.12 wprowadziło dekoracje client-side, które przenoszą pasek tytułowy od window managera. To może powodować problemy, takie jak podwójny pasek tytułowy czy brak paska tytułowego lub podwójne cienie z włączonym kompozytorem.
Żeby usunąć cień i luki wokół okna (naprzykład w kombinacji w tilling window managerem), stwórz następujący plik:
~/.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; } /* Możesz użyć tego, jeśli nie podoba ci się podwójny tytułu. GtkLabel.title { opacity: 0; }*/
Aby dostosować przyciski na pasku tytułowym, ustaw gtk-decoration-layout
. [5] Poniższe przykłady usuwają wszystkie przyciski:
~/.config/gtk-3.0/settings.ini
gtk-decoration-layout=menu:
Powstrzymaj ostrzeżenia o dostępnośći
Jeżeli nie używasz żadnych funkcji dostępnośći GNOME, możesz otrzymać błędy takie jak te:
WARNING **: Couldn't connect to accessibility bus:
Żeby powstrzymać te błędy uruchom programy z NO_AT_BRIDGE=1
lub ustaw jako globalną wartość środowiska.
Niedopasowanie koloru tła paska tytułu
Jeśli używasz window managera, który używa motywu dekoracji okna, który naśladuje kolor tła motywu GTK+, może się okazać, że kolor paska tytułowego nie jest już całkowicie zgodny z kolorem aplikacji w niektórych aplikacjach GTK+ 3. Aby obejść ten problem, stwórz następujący plik:
~/.config/gtk-3.0/gtk.css
/* Zawsze używaj koloru tła */ GtkWindow { background-color: @theme_bg_color; } /* Napraw nadpisanie tła tooltipu */ .tooltip { background-color: rgba(0, 0, 0, 0.8); } .tooltip * { background-color: transparent; } /* Napraw nadpisanie tła okna pulpitu Nautilusa */ NautilusWindow { background-color: transparent; }
Nieprawidłowe zdarzenia fokusu z tiling menedżerami okien
Zdefiniuj GDK_CORE_DEVICE_EVENTS=1
żeby używać wejścia typu GTK2 zamiast xinput2. [7]
Obsługa miniaturek dla okna dialogowego pliku GTK+ 2
Zainstaluj pakiet gtk2-patched-filechooser-icon-viewAUR żeby mieć opcje do podglądu plików jako miniaturki zamiast listy w selektorze plików GTK+.
Twój plik ~/.config/gtk-3.0/settings.ini
jest źle skonfigurowany. Może to się zdarzyć, jeśli wypróbujesz inne środowiska graficzne oparte na GTK+. To są obraźliwe wartości:
~/.config/gtk-3.0/settings.ini
[Settings] gtk-button-images=1 gtk-menu-images=1
Po prostu ustaw je na 0 lub usuń cały plik, aby użyć domyślnych ustawień GNOME.
GTK+ 3 bez polkitu
GTK+ 3 zależy od polkitu przez colord, który jest wymagany do drukowania. Jednak drukowanie działa dobrze bez zainstalowanego polkitu; przynajmniej z monochromatyczną drukarką i wersjami pakietów gtk3-print-backends=3.22.19-2 and colord=1.4.1-1.
Niektóre motywy GTK+ 2 zmieniają tylko palete kolorów UI
W zależności od wyboru motywu wsparcia opcji obsługi GTK+ 2, UI może nadal mieć domyślny wygląd Raleigh, prawdopodobnie z inną paletą kolorów. Jest to spowodowane tym że wymagają one silnika Murrine GTK+ 2, którego brakuje (programy GTK+ 2 powinny narzekać na to na standardowym wyjściu błędów). Zainstaluj pakiet gtk-engine-murrine.
Przykłady
Przykład konfiguracji 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
Przykład konfiguracji GTK+ 3 skonfigurowanej z GTK+ 2.x do GTK+ 3.x przez 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