GTK (Polski)

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.

Tango-preferences-desktop-locale-modified.pngThe translation of this article or section does not reflect the original text.Tango-preferences-desktop-locale-modified.png

Reason: Not updated since its creation in 2018, out of sync with English page (Discuss in Talk: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
Tip: 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
https://github.com/tista500/Adapta || adapta-gtk-theme
  • 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
https://invent.kde.org/plasma/breeze-gtk || breeze-gtk
  • Deepin — Domyślny motyw dla pulpitu Deepin. Zawiera: deepin, deepin-dark
https://github.com/linuxdeepin/deepin-gtk-theme || deepin-gtk-theme
  • GNOME Extra Themes — Dodatkowe motywy dla pulpitu GNOME. Zawiera: Adwaita, Adwaita-dark, HighContrast
https://gitlab.gnome.org/GNOME/gnome-themes-extra || gnome-themes-extra
  • MATE Themes — Domyślne motywy dla pulpitu MATE. Zawiera: BlackMATE, Blue-Submarine, BlueMenta, ContrastHighInverse, Green-Submarine, GreenLaguna, Menta, TraditionalGreen, TraditionalOk
https://github.com/mate-desktop/mate-themes || mate-themes
  • Materia Theme — Płaski motyw ala Material Design GTK3, GTK2, i GNOME-Shella.
https://github.com/nana-4/materia-theme || materia-gtk-theme
  • Numix — Płaski i jasny motyw o nowoczesnym wyglądzie (GNOME, Openbox, Unity, Xfce). Zawiera: Numix
https://github.com/shimmerproject/Numix || numix-gtk-themeAUR
  • Blackbird — Ciemny motyw dla Xfce.
https://github.com/shimmerproject/Blackbird || xfce-theme-blackbirdAUR
  • Greybird — Szary i niebieski motyw Xfce, używany domyślnie w Xubuntu 12.04.
https://github.com/shimmerproject/Greybird || xfce-theme-greybirdAUR
  • Vertex — Motyw dla GTK 3, GTK 2, GNOME Shella i Cinnamona.
https://github.com/horst3180/vertex-theme || vertex-themesAUR
  • Zuki — Motywy dla GTK, GNOME Shella i więcej.
https://github.com/lassekongo83/zuki-themes || zuki-themes-gitAUR

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
https://invent.kde.org/plasma/oxygen-gtk || oxygen-gtk2AUR
  • QtCurve — Konfigurowalny zestaw stylów widżetów dla KDE i GTK.
https://invent.kde.org/system/qtcurve || qtcurve-gtk2

W AUR istnieje wiele dodatkowych motywów GTK+, na przykład: wyszukanie dla gtk-theme lub wyszukanie dla gtk2-theme.

Note: Ponieważ GTK+3 szybko się rozwija, motywy GTK+ 3 często wymagają poprawek po wydaniu nowej wersji GTK+ 3. Z tego powodu nie wszystkie motywy GTK+ 3 mogą wyglądać niepoprawnie jeśli są używane z najnowszą wersją GTK+ 3.

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)
https://wiki.lxde.org/en/LXAppearance || lxappearance
  • 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.
https://github.com/actionless/oomox || oomoxAUR

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).
http://plasmasturm.org/code/gtk-chtheme/ || gtk-chtheme
  • GTK+ Preference Tool — Selektor motywów GTK+ i przełącznik czcionek.
http://gtk-win.sourceforge.net/home/index.php/Main/GTKPreferenceTool || gtk2_prefsAUR
  • GTK+ Theme Switch — Prosty przełącznik motywów GTK+.
http://muhri.net/nav.php3?node=gts || gtk-theme-switch2AUR

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
Note:
  • 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
Note: Nazwa paczek ikon to nazwa zdefiniowana w pliku indeksu motywu, a nie nazwa jego katalogu.

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.

Opóźnienie menu GNOME

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

Zobacz również [1] i [2].

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

Note: To ustawienie nie jest przestrzegane przez wszystkie aplikacje GTK+.
Tip: Starsze zachowanie przewijania można uzyskać niezawodnie po prostu za pomocą prawego kliknięcia zamiast lewego kliknięcia.

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.

Tip: To disable GTK window decorations in Wayland, install the gtk3-optional-csdAUR[broken link: package not found] package and set the 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

Note: Spowoduje to wyłączenie obsługi ekranu dotykowego dla aplikacji GTK+ 3. [6]

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+.

Ikony przycisków/menu w niektórych aplikacjach w sesji Waylanda GNOME

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

Zobacz również