GTK (Português)
Do site do GTK:
- GTK, ou o GIMP Toolkit, é um kit de ferramentas multiplataforma para criar interfaces gráficas com o usuário. Oferecendo um conjunto completo de widgets, o GTK é adequado para projetos que variam de pequenas ferramentas únicas a conjuntos completos de aplicativos.
O GTK, o GIMP Toolkit, foi criado inicialmente pelo Projeto GNU para o GIMP, mas agora é um kit de ferramentas muito popular com vinculações para várias linguagens. Este artigo explorará as ferramentas usadas para configurar o tema, o estilo, o ícone, a fonte e o tamanho da fonte do GTK, além de detalhar a configuração manual.
Instalação
Três versões do GTK estão atualmente disponíveis nos repositórios oficiais. Elas podem ser instaladas com os seguintes pacotes:
- GTK 4.x está disponível com o pacote gtk4.
- GTK 3.x está disponível com o pacote gtk3.
- GTK 2.x está disponível com o pacote gtk2.
- GTK 1.x está disponível com o pacote gtkAUR.
Temas
No GTK 2, o tema padrão é o Raleigh, mas o Arch Linux tem um arquivo de configuração personalizado em /usr/share/gtk-2.0/gtkrc
, que define o tema padrão como Adwaita. No GTK 3, o tema padrão é Adwaita, mas os temas HighContrast, HighContrastInverse e Raleigh também estão incluídos.
Para forçar um tema específico, defina as seguintes variáveis de ambiente:
- Para GTK 2, use
GTK2_RC_FILES
. Por exemplo, para iniciar o GIMP com o tema Raleigh:
$ GTK2_RC_FILES=/usr/share/themes/Raleigh/gtk-2.0/gtkrc gimp
gtkrc
também pode ser um arquivo personalizado em seu diretório home criado por qualquer uma das #Ferramentas de configuração. Veja #Exemplos.- Para GTK 3, use
GTK_THEME
. Por exemplo, para iniciar a Calculadora do GNOME com a variante escura do Adwaita:
$ GTK_THEME=Adwaita:dark gnome-calculator
Mais temas podem ser instalados a partir dos repositórios oficiais ou do AUR. Temas extraídos manualmente vão nos diretórios ~/.themes/
ou ~/.local/share/themes/
.
GTK 2 e GTK 3.20 ou mais novos tem suporte em:
- Adapta — Um tema GTK adaptivo baseado em Material Design Guidelines. Inclui: Adapta, Adapta-Eta, Adapta-Nokto, Adapta-Nokto-Eta
- Arc — Um tema plano com um visual moderno e elementos transparentes. Inclui: Arc, Arc-Dark, Arc-Darker
- https://github.com/nicohood/arc-theme || com transparência: arc-gtk-theme, sem transparência: arc-solid-gtk-theme
- Bluebird — Blue Desktop Suite para o Xfce.
- Breeze — A versão GTK do tema de widgets padrão do KDE. Inclui: Breeze, Breeze-Dark
- Deepin — Tema padrão para o ambiente Deepin. Inclui: deepin, deepin-dark
- GNOME Extra Themes — Temas extras para o ambiente GNOME. Inclui: Adwaita, Adwaita-dark, HighContrast
- Greybird — Um tema cinza e azul para o Xfce, usado por padrão no Xubuntu 12.04.
- Materia — Um tema plano semelhante ao Material Design para GTK3, GTK2 e GNOME-Shell.
- MATE Themes — Temas padrão para o ambiente MATE. Inclui: BlackMATE, Blue-Submarine, BlueMenta, ContrastHighInverse, Green-Submarine, GreenLaguna, Menta, TraditionalGreen, TraditionalOk
- Numix — Um tema plano e leve com um visual moderno (GNOME, Openbox, Unity, Xfce). Inclui: Numix
- Vertex — Tema para GTK 3, GTK 2, Gnome-Shell e Cinnamon.
- Zuki — Tema para GTK, gnome-shell e mais.
Há vários temas GTK adicionais no AUR. Por exemplo, pesquise por gtk-theme.
GTK e Qt
Se você tem aplicativos GTK e Qt (KDE) em sua área de trabalho, sabe que sua aparência não combina bem. Se você deseja fazer seus estilos de GTK combinarem com seus estilos de Qt, por favor, leia Aparência uniforme para aplicativos em Qt e GTK.
Ferramentas de configuração
A maioria dos grandes ambientes de desktop fornecem ferramentas para configurar o tema GTK, ícones, fonte e tamanho da fonte, e gerenciar essas configurações por XSettings:
- Se você usa Cinnamon, use a ferramenta Temas (cinnamon-settings themes): vá em Configurações do sistema > Temas.
- Se você usa Enlightenment: vá em Definições > Tudo > Aparência > Tema das aplicações.
- Se você usa GNOME, use Ajustes do GNOME (gnome-tweaks): instale gnome-tweaks.
- Se você usa MATE, use a ferramenta Appearance Preferences (mate-appearance-properties): vá em Sistema > Configurações > Aparência.
- Se você usa Xfce, use a ferramenta Appearance: vá em Configurações > Aparência.
Outras ferramentas GUI geralmente sobrescrevem os arquivos de configuração.
Suporte a GTK 2 e GTK 3:
- KDE GTK Configurator — Aplicativo que permite que você altere o estilo e fonte de aplicativos GTK 2 e GTK 3.
- https://invent.kde.org/plasma/kde-gtk-config || kde-gtk-config
- Após a instalação,
kde-gtk-config
também pode ser encontrado em Configurações do sistema > Estilo dos aplicativos > GNOME/GTK Application Style.
- LXAppearance — Ferramenta de configuração de estilo independente para GTK 2 e GTK 3 do projeto LXDE (não requer outras partes da área de trabalho do LXDE).
- https://wiki.lxde.org/en/LXAppearance[link inativo 2022-09-18 ⓘ] || lxappearance
- {{App|Oo-mox|Aplicativo gráfico para gerar diferentes variações de cores dos temas dos temas Numix e Flat-Plat (GTK 2 e 3), Archdroid e Gnome-Colors. Também permite gerar temas GTK 2 pré-dimensionados para telas HiDPI.|https://github.com/actionless/oomox%7C[link inativo 2023-05-06 ⓘ]themix-full-gitAUR
Suporte apenas a GTK 2:
- GTK Change Theme — Um programa pequeno que permite que você altere seu tema GTK 2.0 (considerado uma alternativa melhor ao switch2).
- GTK Preference Tool — Seletor de temas GTK e alternador de fontes.
- http://gtk-win.sourceforge.net/home/index.php/Main/GTKPreferenceTool[link inativo 2024-07-30 ⓘ] || gtk2_prefsAUR
- GTK Theme Switch — Alternador de temas GTK simples.
Configuração
As configurações do GTK podem ser especificadas manualmente nos arquivos de configuração, mas os ambientes e aplicativos de desktop podem substituir essas configurações. Dependendo da versão do GTK, esses arquivos estão localizados em:
- específico de usuário no GTK 2:
~/.gtkrc-2.0
- todo o sistema no GTK 2:
/etc/gtk-2.0/gtkrc
- específico de usuário no GTK 3:
$XDG_CONFIG_HOME/gtk-3.0/settings.ini
, ou$HOME/.config/gtk-3.0/settings.ini
se$XDG_CONFIG_HOME
não estiver definido - todo o sistema no GTK 3:
/etc/gtk-3.0/settings.ini
- Veja as propriedades de GtkSettings do GTK 3 (e as propriedades do GTK 2) no manual de referência de programação do GTK para a lista completa as opções de configuração de GTK atualmente válidas.
- Algumas das configurações descritas abaixo (como
gtk-icon-size
) são obsoletas e ignoradas desde o GTK 3.10. - Se você editar seus arquivos de configuração do GTK, apenas os aplicativos recém-iniciados exibirão as alterações.
Configuração básica de tema
Para alterar manualmente o tema, os ícones, a fonte e o tamanho da fonte do GTK, adicione o seguinte aos arquivos de configuração, por exemplo:
- 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
index.theme
.Variante escura de tema
Alguns temas do GTK 3 contêm uma variante de tema escuro, mas ela é usada apenas por padrão quando o aplicativo solicita isso explicitamente. Para usar a variante do tema escuro com todos os aplicativos GTK 3, defina:
gtk-application-prefer-dark-theme = true
Atalhos de teclado
Os atalhos de teclado (também conhecidos como aceleradores no GTK) podem ser alterados passando o mouse sobre o respectivo item de menu e pressionando a combinação de teclas desejada. Para ativar esse recurso, defina:
gtk-can-change-accels = 1
Vinculações de teclas Emacs
Para ter associações de teclas do tipo Emacs em aplicativos de GTK, adicione o seguinte:
~/.gtkrc-2.0
gtk-key-theme-name = "Emacs"
~/.config/gtk-3.0/settings.ini
[Settings] gtk-key-theme-name = Emacs
Para GTK 3, também execute:
$ gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"
XFCE possui uma configuração similar:
$ xfconf-query -c xsettings -p /Gtk/KeyThemeName -s Emacs
Os arquivos de configuração em /usr/share/themes/Emacs/
determinam quais são as ligações do Emacs e podem ser alteradas. Copiar seções para o arquivo ~/.gtkrc-2.0
permite alterações por usuário.
Essa configuração controla o atraso entre apontar o mouse em um menu e a abertura do menu. Esse atraso é medido em milissegundos.
gtk-menu-popup-delay = 0
Reduzir tamanhos de widgets
Se você tem uma tela pequena ou simplesmente não gosta de grandes ícones e widgets, pode redimensionar as coisas facilmente.
Para ter ícones sem texto nas barras de ferramentas (valores válidos), use
gtk-toolbar-style = GTK_TOOLBAR_ICONS
Para ícones menores, use uma linha como essa:
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"
Ou para remover ícones de botões completamente:
gtk-button-images = 0
Você também pode remover ícones de menus:
gtk-menu-images = 0
Ocultar botões de CSD
Para remover os botões minimizar e maximizar das janelas em gtk3:
gtk-decoration-layout=menu:close
See [3].
Desabilitar colagem com mouse
Para desaligar colagem ao clicar com o botão do meio do mouse (também conhecido como PRIMARY):
gtk-enable-primary-paste=false
Localização inicial do seletor de arquivos
Abra o seletor de arquivos dentro do diretório de trabalho atual e não o local recentes. Normalmente o diretório de trabalho atual é a pasta pessoal.
GTK 3
Altere a configuração com o seguinte comando:
$ gsettings set org.gtk.Settings.FileChooser startup-mode cwd
GTK 2
Adicione o seguinte para ~/.config/gtk-2.0/gtkfilechooser.ini
:
StartupMode=cwd
Comportamento de rolagem legada
Antes do GTK 3.6, clicar em um dos lados do controle deslizante na barra de rolagem moveria a barra de rolagem na direção do clique em aproximadamente uma página. Desde o GTK 3.6, o controle deslizante se moverá diretamente para a posição do clique. Esse comportamento pode ser revertido em alguns aplicativos, criando o arquivo com o conteúdo abaixo:
~/.config/gtk-3.0/settings.ini
[Settings] gtk-primary-button-warps-slider = false
Desabilitar barras de rolagem de sobreposição
Desde o GTK 3.15, as barras de rolagem de sobreposição são ativadas por padrão, o que significa que as barras de rolagem serão mostradas apenas ao passar o mouse nas aplicações do GTK 3. Esse comportamento pode ser revertido pela configuração da seguinte variável de ambiente: GTK_OVERLAY_SCROLLING=0
. Veja Variáveis de ambiente#Ambiente gráfico.
O GTK 4 deixará de dar suporte a GTK_OVERLAY_SCROLLING
. Ele já foi retirado do ramo mestre. A partir do GTK 4, a natureza de sobreposição das barras de rolagem é parte do kit de ferramentas. A alternância geral foi removida para impedir que os desenvolvedores quebrem aplicativos que não foram testados com ambas as combinações. Para permitir que os desenvolvedores de aplicativos decidam como devem ser seus aplicativos, o kit de ferramentas fornece um mecanismo para desativar ou adicionar uma configuração aos usuários. A função gtk_scrolled_window_set_overlay_scrolling() pode ser usada para ativar/desativar a sobreposição de rolagem em uma base por aplicativo. Os desenvolvedores de aplicativos podem, opcionalmente, usar o GSettings para ter uma configuração de usuário vinculada à propriedade.
Remover indicadores de rolagem de sobreposição
As posições das barras de rolagem de sobreposição são indicadas por linhas tracejadas finas na janela do aplicativo. Essas linhas tracejadas estarão presentes mesmo quando a rolagem de overlay estiver desabilitada usando a variável de ambiente discutida na seção acima. Para remover as linhas do indicador, crie o seguinte arquivo:
~/.config/gtk-3.0/gtk.css
/* Remover linhas tracejadas de aplicativos GTK 3 */ undershoot.top, undershoot.right, undershoot.bottom, undershoot.left { background-image: none; }
Exemplos
Exemplo de configurações do 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
Backend do GDK
O GDK (a camada de abstração subjacente do GTK) possui suporte a vários backends para exibir aplicativos GTK. O backend padrão é x11.
Backend do Broadway
O backend do GDK Broadway fornece suporte para a exibição de aplicativos GTK em um navegador da Web, usando HTML5 e soquetes da web. [4]
Ao usar broadwayd, especifique o número de exibição a ser usado, prefixado com caractere de dois pontos, semelhante a X. O número de exibição padrão é 1.
$ display_number=:5
Inicie-o.
$ broadwayd $display_number
Porta usada por padrão
port = 8080 + $display_number
Aponte seu navegador para http://127.0.0.1:port
Para iniciar aplicativos
$ GDK_BACKEND=broadway BROADWAY_DISPLAY=$display_number <<app>>
Alternativamente, você pode definir endereço e porta
$ broadwayd --port $port_number --address $address $display_number
Backend do Wayland
O backend GDK do Wayland pode ser ativado definindo a variável de ambiente GDK_BACKEND=wayland
.
GTK_CSD=0
.Solução de problemas
Temas diferentes entre aplicativos GTK 2 e GTK 3
Em geral, se um tema selecionado tiver suporte ao GTK 2 e ao GTK 3, o tema será aplicado a todos os aplicativos GTK 2 e GTK 3. Se um tema selecionado tiver suporte apenas ao GTK 2, ele será usado para aplicativos do GTK 2 e o tema padrão do GTK será usado para aplicativos do GTK 3. Se o tema selecionado tiver suporte apenas ao GTK 3, ele será usado para aplicativos do GTK 3 e o tema padrão do GTK será usado para aplicativos do GTK 2. Assim, para a consistência do tema da aplicação, é melhor usar um tema que tenha suporte ao GTK 2 e o GTK 3.
Você poderia encontrar quais temas instalados em seu sistema possuem uma versão GTK 2 e GTK 3 usando este comando (não funciona com nomes que contenham espaços):
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"/
Tema não aplicado para aplicativos de root
Como arquivos de tema de usuário ($XDG_CONFIG_HOME/gtk-3.0/settings.ini
, ~/.gtkrc-2.0
) não são lidos por outras contas, o tema selecionado não será aplicado a aplicativos X sendo executados como root. Possíveis soluções incluem:
- Criar links simbólicos, p.ex.:
# 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
- Configurar arquivos de temas para todo sistema:
/etc/gtk-3.0/settings.ini
(GTK 3) ou/etc/gtk-2.0/gtkrc
(GTK 2) - Ajustar o tema como root
# sudo lxappearance
- Usar o daemon de configurações (é isso que a maioria dos ambientes desktop fazem). Uma variante agnóstica a desktop usando XSettings está disponível sob nome xsettingsd-gitAUR.
Decorações do lado do cliente
O GTK 3.12 introduziu decorações para cliente, que move a barra de cabeçalho para fora do gerenciador de janela. Isso pode apresentar problemas como barras de título duplas, nenhuma barra de título ou sombras duplas com composição habilitada.
Para remover a sombra e o espaço em torno das janelas (por exemplo, em combinação com um gerenciador de janela de tiling), crie o seguinte arquivo:
~/.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; }*/
Para ajustar os botões na barra de cabeçalho, use a configuração gtk-decoration-layout
[5]. Os exemplos abaixo removem todos os botões:
~/.config/gtk-3.0/settings.ini
gtk-decoration-layout=menu:
Cedilha ç/Ç em vez de ć/Ć
Veja [6] e [7] para uma a solução de contorno usando Xcompose (layout EUA internacional).
Suprimir aviso sobre barramento de acessibilidade
Se você não usa nenhuma recurso do Acesso Universal do GNOMe, você pode receber avisos com:
WARNING **: Couldn't connect to accessibility bus:
Para suprimir esses avisos, execute programas com NO_AT_BRIDGE=1
ou defina isso como uma variável de ambiente global.
Incompatibilidade de cor de fundo da barra de título
Se você estiver usando um gerenciador de janela que usa um tema de decoração de janelas que imita a cor de fundo do tema GTK, você pode descobrir que a cor da barra de título não combina mais com a cor do aplicativo em alguns aplicativos do GTK 3. Como solução alternativa, crie o seguinte arquivo:
~/.config/gtk-3.0/gtk.css
/* Sempre usa cor de plano de fundo */ GtkWindow { background-color: @theme_bg_color; } /* Corrige substituição de plano de fundo da dica de ferramenta */ .tooltip { background-color: rgba(0, 0, 0, 0.8); } .tooltip * { background-color: transparent; } /* Corrige substituição de plano de fundo da janela da área de trabalho do Nautilus */ NautilusWindow { background-color: transparent; }
Eventos de foco incorretos com gerenciadores de janela tiling
Defina GDK_CORE_DEVICE_EVENTS=1
para usar entrada no estilo GTK2 em vez de xinput2. [9]
Suporte a miniaturas para diálogo de arquivos GTK 2
Instale gtk2-patched-filechooser-icon-viewAUR para ter a opção para ver arquivos como miniaturas em vez de lista no seletor de arquivos GTK.
Para algumas aplicações na sessão Wayland do GNOME. Seu arquivo ~/.config/gtk-3.0/settings.ini
está desconfigurado. Isso pode acontecer se você tentar outros ambientes de área de trabalho baseados em GTK. Estes são os valores ofensivos:
~/.config/gtk-3.0/settings.ini
[Settings] gtk-button-images=1 gtk-menu-images=1
Basta defini-los como 0 ou remover o arquivo inteiro para usar os padrões do GNOME.
GTK 3 sem polkit
O GTK 3 depende do polkit através do colord, que é necessário para impressão. No entanto, a impressão funciona bem sem o polkit instalado; pelo menos com uma impressora monocromática e versões de pacote gtk3-print-backends=3.22.19-2 e colord=1.4.1-1.
Alguns temas de GTK 2 só alteram a paleta de cores da UI
Dependendo do tema de escolha do suporte para o GTK 2, os controles da interface do usuário ainda podem ter a aparência padrão do Raleigh, possivelmente com uma paleta de cores diferente. Isso se deve a esses temas que exigem o mecanismo Murrine GTK 2, que está faltando (programas GTK 2 devem reclamar sobre isso em sua saída de erro padrão). Instale o pacote gtk-engine-murrine.
Aplicando patch no seletor de arquivos GTK para usar a digitação adiantada normal
O seletor de arquivos GTK usa o mesmo recurso de busca por digitação antecipada do GNOME/Files. Isso pode ser muito chocante e não se encaixa muito bem com outros ambientes de desktop.
Alguns aplicativos possuem suporte ao XDG-desktop-portal, que permite que o aplicativo use o seletor de arquivo nativo. Se isso não funcionar, você pode restaurar a funcionalidade de digitação antecipada usando um GTK com patch aplicado como, por exemplo, gtk3-mushroomsAUR[link quebrado: package not found].