GTK (Español)
De la web de GTK:
- GTK, o GIMP Toolkit, es un conjunto de herramientas multiplataforma para crear interfaces gráficas de usuario. Al ofrecer un conjunto completo de widgets, GTK es adecuado para proyectos que van desde pequeñas herramientas con funcionalidad reducida hasta completas suites de aplicaciones.
GTK (GIMP Toolkit) fue originalmente creado por el Proyecto GNU para GIMP, pero ahora es un conjunto de herramientas popular con conectores a múltiples lenguajes de programación. Este artículo explora las herramientas utilizadas para configurar el tema GTK, el estilo, los iconos, las fuentes y sus tamaños, y también detalla la configuración manual.
Instalación
Tres versiones de GTK estan disponibles en los repositorios oficiales. Se pueden instalar con los siguientes paquetes:
- GTK 4.x disponible con el paquete gtk4.
- GTK 3.x disponible con el paquete gtk3.
- GTK 2.x disponible con el paquete gtk2.
GTK 1.x disponible con el paquete gtkAUR.
Temas
En GTK 3, el tema predeterminado es Adwaita, pero también se incluyen HighContrast, HighContrastInverse y Raleigh.
En GTK 2, el tema predeterminado es Raleigh, pero Arch Linux tiene un archivo de configuración personalizado en /usr/share/gtk-2.0/gtkrc
, que establece Adwaita como el tema predeterminado.
- Para GTK 3, utilice
GTK_THEME
. Por ejemplo para lanzar la calculadora de GNOME con la variante oscura de Adwaita:
$ GTK_THEME=Adwaita:dark gnome-calculator
Para forzar un tema específico, establezca las siguientes variables de entorno.
- Para GTK 2, utilice
GTK2_RC_FILES
. Por ejemplo para lanzar GIMP con el tema Raleigh:
$ GTK2_RC_FILES=/usr/share/themes/Raleigh/gtk-2.0/gtkrc gimp
gtkrc
puede ser también un archivo personalizado en su directorio de inicio creado por cualquiera de las #Herramientas de configuración. Véase #Ejemplos.Se pueden instalar más temas desde los repositorios oficiales o desde AUR. Los temas extraídos manualmente van en el directorio ~/.themes/
o ~/.local/share/themes/
.
Temas soportados en GTK 2 y GTK 3:
- Adapta — Un tema GTK adaptativo basado en las guías de diseño de Material Design. Incluye: Adapta, Adapta-Eta, Adapta-Nokto, Adapta-Nokto-Eta
- Arc — Un tema plano con un aspecto moderno y elementos transparentes. Incluye: Arc, Arc-Dark, Arc-Darker
- https://github.com/jnsh/arc-theme || con transparencia: arc-gtk-theme, sin transparencia: arc-solid-gtk-theme
- Bluebird — Blue Desktop Suite para Xfce.
- Breeze — Versión GTK del tema predeterminado de KDE. Incluye: Breeze, Breeze-Dark
- Deepin — Tema predeterminado del escritorio Deepin. Incluye: deepin, deep-dark
- Temas extra de GNOME — Temas extra para el escritorio GNOME. Incluye: Adwaita, Adwaita-dark, HighContrast
- Greybird — Un tema de Xfce gris y azul, utilizado por defecto en Xubuntu 12.04.
- Tema Materia — Un tema plano parecido a Material Design para GTK3, GTK2 y GNOME-Shell.
- Temas de MATE — Temas predeterminados del escritorio MATE. Incluye: BlackMATE, Blue-Submarine, BlueMenta, ContrastHighInverse, Green-Submarine, GreenLaguna, Menta, TraditionalGreen, TraditionalOk
- Numix — Un tema plano y ligero con un aspecto moderno (GNOME, Openbox, Unity, Xfce). Incluye: Numix
- Vertex — Tema para GTK3, GTK2, Gnome-Shell y Cinnamon.
- Zuki — Temas para GTK, gnome-shell y más.
Hay una serie de temas GTK adicionales en AUR, por ejemplo: búsqueda de gtk-theme.
GTK y Qt
Si tiene aplicaciones GTK y Qt (KDE) en su escritorio, entonces sabe que sus apariencias no combinan bien. Si desea que los estilos GTK coincidan con los estilos Qt, véase unificación de aspectos para las aplicaciones Qt y GTK.
Herramientas de configuración
La mayoría de los entornos de escritorio proporcionan herramientas para configurar el tema GTK, los iconos, la tipografía y el tamaño de la misma, y administrar estas configuraciones a través de XSettings:
- Si utiliza Cinnamon, emplee la herramienta Temas (cinnamon-settings themes): diríjase a Configuración del sistema > Temas.
- Si utiliza Enlightenment: diríjase a Configuración > Todos > Aspecto > Tema de aplicación.
- Si utiliza GNOME, emplee los ajustes de GNOME (gnome-tweaks): instale gnome-tweaks.
- Si utiliza MATE, emplee la herramienta de Preferencias de apariencia (mate-apariencia-propiedades): diríjase a Sistema > Configuración > Apariencia.
- Si utiliza Xfce, emplee la herramienta Apariencia: diríjase a Configuración > Apariencia.
Otras herramientas del GUI generalmente sobrescriben los archivos de configuración.
Compatibles con GTK 2 y GTK 3:
- KDE GTK Configurator — Aplicación que le permite cambiar el estilo y la tipografía de las aplicaciones GTK 2 y GTK 3.
- Https://invent.kde.org/plasma/kde-gtk-config || kde-gtk-config
- Después de la instalación,
kde-gtk-config
se puede encontrar también en Configuración del sistema > Estilo de aplicación > Estilo de aplicación GNOME/GTK.
- LXAppearance — Herramienta independiente del escritorio de configuración de estilo GTK 2 y GTK 3 del proyecto LXDE (no requiere otras partes del escritorio LXDE).
- Oo-mox — Aplicación gráfica para generar diferentes variaciones de color de los temas Numix y Flat-Plat (GTK 2 y 3), Archdroid y Gnome-Colors. También permite generar temas GTK 2 pre-escalados para pantallas HiDPI.
Compatible solo con GTK 2:
- GTK Change Theme — Pequeño programa que le permite cambiar su tema GTK 2.0 (considerada una mejor alternativa a switch2).
- GTK Preference Tool — Selector de temas GTK y cambio de tipografía.
- GTK Theme Switch — Intercambiador simple de temas GTK.
Configuración
Los ajustes de GTK se puede especificar manualmente en los archivos de configuración, pero los entornos de escritorio y las aplicaciones pueden anular esta configuración. Dependiendo de la versión GTK, estos archivos se encuentran en:
- GTK 2 específico del usuario:
~/.gtkrc-2.0
- GTK 2 en todo el sistema:
/etc/gtk-2.0/gtkrc
- GTK 3 específico del usuario:
$XDG_CONFIG_HOME/gtk-3.0/settings.ini
, o$HOME/.config/gtk-3.0/settings.ini
si$XDG_CONFIG_HOME
no está establecido - GTK 3 en todo el sistema:
/etc/gtk-3.0/settings.ini
- Véase Propiedades GtkSettings de GTK 3 (y Propiedades de GTK 2) en el manual de referencia de programación de GTK para ver la lista completa de las opciones de configuración actualmente admitidas de GTK.
- Algunas de las configuraciones que se describen a continuación (como
gtk-icon-size
) están en desuso y se ignoran desde GTK 3.10. - Si edita sus archivos de configuración GTK, solo las aplicaciones recién iniciadas mostrarán los cambios.
Configuración básica del tema
Para cambiar manualmente el tema, los iconos, la tipografía y el tamaño de la fuente GTK, añada lo siguiente a los archivos de configuración, por ejemplo:
- 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
Si el tema no se aplica para GTK 3, utilice además gsettings
:
$ gsettings set org.gnome.desktop.interface gtk-theme Pop
index.theme
.Variante oscura del tema
Algunos temas de GTK 3 contienen una variante oscura del tema, pero solo se usa de forma predeterminada cuando la aplicación lo solicita explícitamente. Para usar la variante oscura del tema con todas las aplicaciones GTK 3, establezca:
gtk-application-prefer-dark-theme = true
Atajos de teclado
Los atajos de teclado (también conocidos como "aceleradores" en GTK o métodos abreviados de teclado) se pueden cambiar al colocar el ratón sobre el elemento del menú correspondiente y presionar la combinación de teclas deseada. Para habilitar esta característica, establezca:
gtk-can-change-accels = 1
Combinaciones de teclas Emacs
Para tener combinaciones de teclas similares a Emacs en aplicaciones GTK, añada lo siguiente:
~/.gtkrc-2.0
gtk-key-theme-name = "Emacs"
~/.config/gtk-3.0/settings.ini
[Settings] gtk-key-theme-name = Emacs
Para GTK 3 ejecute también:
$ gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"
XFCE tiene una configuración similar:
$ xfconf-query -c xsettings -p /Gtk/KeyThemeName -s Emacs
Los archivos de configuración en /usr/share/themes/Emacs/
determinan cuáles son los enlaces de Emacs, y se pueden cambiar. Copiar secciones en el archivo ~/.gtkrc-2.0
de los usuarios permite realizar cambios para cada usuario.
Retraso del menú de GNOME
Esta configuración controla el retraso entre apuntar el ratón hacia un menú y la apertura del mismo. Este retraso se mide en milisegundos.
gtk-menu-popup-delay = 0
Reducir el tamaño de los widgets
Si tiene una pantalla pequeña o simplemente no le gustan los iconos y widgets grandes, puede cambiarles el tamaño fácilmente.
Para tener iconos sin texto en las barras de herramientas (valores válidos), utilice:
gtk-toolbar-style = GTK_TOOLBAR_ICONS
Para tener iconos más pequeños, utilice una línea como esta:
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"
O bien, para eliminar los iconos de los botones por completo:
gtk-button-images = 0
También puede eliminar los iconos de los menús:
gtk-menu-images = 0
Ocultar los botones CSD
Para eliminar los botones minimizar y maximizar de las ventanas gtk3:
gtk-decoration-layout=menu:close
Véase [3].
Desactivar pegar desde el ratón
Para desactivar el pegado al pulsar el botón central del ratón (también conocido como PRIMARIO):
gtk-enable-primary-paste=false
Posición inicial del selector de archivos
Abra el selector de archivos dentro del directorio de trabajo actual y no en la ubicación reciente. Normalmente, el directorio de trabajo actual es el directorio personal.
GTK 3
Cambie el ajuste con la orden siguiente:
$ gsettings set org.gtk.Settings.FileChooser startup-mode cwd
GTK 2
Añada lo siguiente a ~/.config/gtk-2.0/gtkfilechooser.ini
:
StartupMode=cwd
Comportamiento de desplazamiento heredado
Antes de GTK 3.6, pulsando a cada lado del control deslizante en la barra de desplazamiento movía la barra de desplazamiento aproximadamente una página en la dirección donde pulsaba. Desde GTK 3.6, el control deslizante se mueve directamente a la posición donde se pulsa. Este comportamiento se puede revertir en algunas aplicaciones creando el archivo con el contenido siguiente:
~/.config/gtk-3.0/settings.ini
[Settings] gtk-primary-button-warps-slider = false
Deshabilitar las barras de desplazamiento superpuestas
Desde GTK 3.15, las barras de desplazamiento superpuestas están habilitadas de forma predeterminada, lo que significa que las barras de desplazamiento se mostrarán solo al pasar el ratón en las aplicaciones de GTK 3. Este comportamiento se puede revertir configurando la siguiente variable de entorno: GTK_OVERLAY_SCROLLING=0
. Véase Aplicaciones gráficas.
GTK 4 ya no admitirá GTK_OVERLAY_SCROLLING
. Ya ha sido eliminado de la rama principal de desarrollo. A partir de GTK 4, la naturaleza de superposición de las barras de desplazamiento es parte del kit de herramientas. Se ha eliminado el conmutador general para evitar que los desarrolladores rompan aplicaciones que no han sido probadas con ambas combinaciones. Para permitir que los desarrolladores de aplicaciones decidan qué aspecto deberían tener sus aplicaciones, en su lugar, el kit de herramientas proporciona un mecanismo para excluir o añadir una configuración para los usuarios. La función gtk_scrolled_window_set_overlay_scrolling() se puede usar para habilitar/deshabilitar las barras de desplazamiento superpuestas por cada usuario. Los desarrolladores de aplicaciones pueden utilizar opcionalmente GSettings para que el usuario tenga una configuración vinculada a esta propiedad.
Eliminar indicadores de la barra de desplazamiento de superposición
Las posiciones de las barras de desplazamiento de superposición se indican mediante líneas finas discontinuas en la ventana de la aplicación. Estas líneas discontinuas estarán presentes incluso cuando la barra de desplazamiento de superposición se deshabilite utilizando la variable de entorno que se analiza en la sección anterior. Para eliminar las líneas indicadoras, cree el siguiente archivo:
~/.config/gtk-3.0/gtk.css
/* Remove dotted lines from GTK 3 applications */ undershoot.top, undershoot.right, undershoot.bottom, undershoot.left { background-image: none; }
Ejemplos
Ejemplo de configuración de 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
Backends de GDK
GDK (la capa de abstracción subyacente de GTK) admite varios backends para mostrar aplicaciones de GTK. El backend predeterminado es x11.
Backend de Wayland
El backend de GDK Wayland es compatible solo con gtk3 y es el backend predeterminado cuando se utiliza el servidor de visualización Wayland.
Las aplicaciones que utilizan versiones de GTK anteriores a gtk3 no tienen soporte para wayland y necesitan utilizar Xwayland para poder ejecutarse en una sesión de wayland mediante el backend X11.
GTK_CSD=0
.Backend de Xorg
Si el servidor de visualización Xorg está en uso, el backend se establece automáticamente a x11.
Es posible forzar las aplicaciones GTK3 a que se ejecutan en una sesión de wayland a utilizar el backend X11 a través de Xwayland configurando la variable de entorno GDK_BACKEND=x11
.
Backend de Broadway
El backend de GDK Broadway proporciona soporte para mostrar aplicaciones GTK en un navegador web, utilizando HTML5 y sockets web. [4]
Cuando use broadwayd, especifique el número de pantalla a emplear, con el prefijo de dos puntos, similar a X. El número de pantalla predeterminado es 0 (cero).
$ display_number=:5
Inícielo:
$ broadwayd $display_number
El puerto utilizado por defecto es:
port = 8080 + $display_number
Apunte su navegador a http://127.0.0.1:port.
Para iniciar aplicaciones:
$ GDK_BACKEND=broadway BROADWAY_DISPLAY=$display_number <<aplicación>>
Alternativamente, puede configurar la dirección y el puerto
$ broadwayd --port $port_number --address $address $display_number
Solución de problemas
Diferentes temas entre aplicaciones GTK 2 y GTK 3
En general, si un tema seleccionado es compatible con GTK 2 y GTK 3, este se aplicará a todas las aplicaciones GTK 2 y GTK 3. Si un tema seleccionado solo es compatible con GTK 2, se utilizará para las aplicaciones de GTK 2 y el tema predeterminado de GTK se utilizará para las aplicaciones de GTK 3. Si el tema seleccionado solo es compatible con GTK 3, se utilizará para las aplicaciones de GTK 3 y el tema predeterminado de GTK se utilizará para las aplicaciones de GTK 2. Por lo tanto, para la consistencia del tema de la aplicación, es mejor utilizar un tema que sea compatible con GTK 2 y GTK 3.
Puede encontrar qué temas instalados en su sistema tienen las versiones GTK 2 y GTK 3 mediante esta orden (no funciona con nombres que contengan espacios):
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 no aplicado en aplicaciones del superusuario
Como los archivos de temas del usuario ($XDG_CONFIG_HOME/gtk-3.0/settings.ini
, ~/.gtkrc-2.0
) no son leídos por otras cuentas, el tema seleccionado no se aplicará a las aplicaciones X ejecutadas como superusuario. Las posibles soluciones incluyen:
- Crear enlaces simbólicos, por ejemplo:
# 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 los archivos de temas en todo el sistema:
/etc/gtk-3.0/settings.ini
(GTK 3) o/etc/gtk-2.0/gtkrc
(GTK 2) - Ajustar el tema como superusuario:
# lxappearance
- Utilizar un demonio de configuración (esto es lo que hacen la mayoría de los entornos de escritorio). Una variante agnóstica de escritorio que utiliza XSettings está disponible en AUR bajo xsettingsd-gitAUR.
Decoraciones del lado del cliente
GTK 3.12 introdujo las decoraciones del lado del cliente, que separa la barra de título del administrador de ventanas. Esto puede presentar problemas como las dobles barras de títulos, la no existencia de estas o las sombras dobles con la composición habilitada.
Para eliminar la sombra y la brecha alrededor de las ventanas (por ejemplo, en combinación con un administrador de ventanas de mosaico), cree el siguiente archivo:
~/.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 los botones en la barra superior, utilice la configuración gtk-decoration-layout
. [5] El siguiente ejemplo eliminan todos los botones:
~/.config/gtk-3.0/settings.ini
gtk-decoration-layout=menu:
Cedilla ç/Ç en lugar de ć/Ć
Véase [6], y [7] para una solución utilizando Xcompose (disposición internacional de EE.UU.).
Suprimir advertencia referente al bus de accesibilidad
Si no utiliza ninguna de las funciones de accesibilidad de Gnome, puede recibir advertencias en inglés como:
WARNING **: Couldn't connect to accessibility bus:
O en español:
ADVERTENCIA **: No se pudo conectar al bus de accesibilidad:
Para suprimir estas advertencias, ejecute los programas con NO_AT_BRIDGE=1
o configúrelo como una variable de entorno global.
Falta de coincidencia del color de fondo de la barra de título
Si está utilizando un administrador de ventanas que utiliza un tema de decoración de ventanas que imita el color de fondo del tema GTK, es posible que el color de la barra de título ya no coincida completamente con el color de la aplicación en algunas aplicaciones GTK 3. Como solución, cree el siguiente archivo:
~/.config/gtk-3.0/gtk.css
/* Always use background color */ GtkWindow { background-color: @theme_bg_color; } /* Fix tooltip background override */ .tooltip { background-color: rgba(0, 0, 0, 0.8); } .tooltip * { background-color: transparent; } /* Fix Nautilus desktop window background override */ NautilusWindow { background-color: transparent; }
Eventos de enfoque incorrecto con administradores de ventanas de mosaico
Defina GDK_CORE_DEVICE_EVENTS=1
para utilizar la entrada de estilo GTK 2, en lugar de xinput2. [9]
Soporte de miniaturas para el diálogo del archivo GTK
Instale gtk2-patched-filechooser-icon-viewAUR y gtk3-patched-filechooser-icon-viewAUR para tener la opción de ver los archivos como miniaturas en lugar de la lista en el selector de archivos de GTK.
Iconos de botón y menú
Para algunas aplicaciones en la sesión de Wayland de GNOME. Su archivo ~/.config/gtk-3.0/settings.ini
está mal configurado. Esto puede ocurrir si prueba otros entornos de escritorio basados en GTK. Estos son los valores afectados:
~/.config/gtk-3.0/settings.ini
[Settings] gtk-button-images=1 gtk-menu-images=1
Simplemente cámbielos a 0 o elimine todo el archivo para usar los valores predeterminados de GNOME.
GTK 3 sin polkit
GTK 3 depende del polkit a través de colord, que es requerido para imprimir. Sin embargo, la impresión funciona bien sin polkit instalado; al menos con una impresora monocromática y versiones de paquete gtk3-print-backends=3.22.19-2 y colord=1.4.1-1.
Algunos temas de GTK 2 solo cambian la paleta de colores de la interfaz de usuario
Según el tema elegido compatible con GTK 2, los controles de la interfaz de usuario pueden tener la apariencia predeterminada de Raleigh, posiblemente con una paleta de colores diferente. Esto se debe a que estos temas requieren el motor Murrine de GTK 2, que no está disponible (los programas GTK 2 deben avisar de ello en su salida de error estándar). Instale el paquete gtk-engine-murrine.
Parchear el selector de archivos GTK para utilizar el tipo regular antes
El selector de archivos GTK utiliza la misma característica de búsqueda anticipada que GNOME/Files. Esto puede ser muy discordante y no encajar muy bien con otros entornos de escritorio.
Algunas aplicaciones admiten XDG-desktop-portal que permite que la aplicación utilice el selector de archivos nativo. Si eso no funciona, puede restaurar la funcionalidad de escritura anticipada utilizando un GTK parcheado, por ejemplo gtk3-mushroomsAUR[enlace roto: package not found].