Iconos pequeños en el Menú Principal de GNOME
La instalación por defecto de GNOME muestra los iconos grandes en el menú principal y en las barras de herramientas. Pueden preferirse iconos pequeños, no sólo por una cuestión estética, sino para evitar el scroll en menues tales como Internet o Sistema/Preferencias, que tienden a crecer bastante con el tiempo llegando a desbordarse de la pantalla.
Hasta donde sé, no existe un mecanismo simple para cambiar el tamaño de estos iconos. Me di a la tarea de buscar una solución que cumpliera con lo siguiente:
- Ser independiente del tema actualmente en uso.
- Modificar del tema sólo el tamaño de los iconos.
- Perdurar tras actualizaciones del tema.
La solución final (para el impaciente):
Crear el fichero ~/.themes/Default/gtk-2.0-key/gtkrc
y adicionar lo
siguiente:
gtk-icon-sizes = " \
panel = 16,16 : \
panel-menu = 16,16 : \
gtk-button = 16,16 : \
gtk-menu = 16,16 : \
gtk-large-toolbar = 16,16 : \
gtk-small-toolbar = 16,16"
gtk-menu-images = 1
¿Qué dice Google?
Una búsqueda en Google para «small icon gnome menu» devuelve miles de
resultados. Las soluciones encontradas concuerdan en modificar el valor de
gtk-icon-sizes
pero difieren en cuál ficheros de recursos (gtkrc
)
hacerlo. Se proponen 3 opciones básicamente:
Modificar el fichero de recursos del tema
/usr/share/themes/<tema_actual>/gtk-2.0/gtkrc
Descarté esta opción de antemano pues los cambios realizados se perderían tras una actualización. Además, la personalización es dependiente del tema: si se cambia de tema habría que re-configurar el fichero de recursos correspondiente.
Esta solución no cumple las precondiciones 1 y 3.
Modificar el fichero personal de recursos del tema
~/.themes/<tema_actual>/gtk-2.0/gtkrc
Creé este fichero y adicioné el gtk-icon-sizes
. Los iconos se mostraron
pequeños pero se perdió el resto de la configuración del tema. Es de suponer
que este gtkrc
suplanta al del tema, ubicado en
/usr/share/themes/<tema_actual>/gtk-2.0/gktrc
.
Se podría evitar la rotura si en vez de crear un fichero vacío, se copia el
gtkrc
del tema y se personaliza luego.
Esta solución no cumple las precondiciones 1 y 2, además de que las actualizaciones hechas al tema por la distribución no tendrían efecto inmediato a menos que se repitiera el proceso de copia y personalización.
Modificar ~/.gtkrc-2.0
Creé ~/.gtkrc-2.0
y configuré gtk-icon-sizes
. La apariencia de los iconos no cambió.
Solución final
Me dispuse a averiguar todos los ficheros gtkrc
consultados al ejecutar
Nautilus usando los siguientes comandos:
$ strace -o nautilus.trace nautilus
$ grep gtrkc nautilus.trace
La salida fue:
access("/etc/gtk-2.0/gtkrc.64", F_OK) = -1 ENOENT (No such file or directory)
access("/home/mmoya/.gtkrc-2.0.64", F_OK) = -1 ENOENT (No such file or directory)
lstat("/etc/gtk-2.0/gtkrc", 0x7fff830a4b10) = -1 ENOENT (No such file or directory)
access("/etc/gtk-2.0/gtkrc.es_MX", F_OK) = -1 ENOENT (No such file or directory)
access("/etc/gtk-2.0/gtkrc.es", F_OK) = -1 ENOENT (No such file or directory)
lstat("/home/mmoya/.gtkrc-2.0", {st_mode=S_IFREG|0644, st_size=128, ...}) = 0
open("/home/mmoya/.gtkrc-2.0", O_RDONLY) = 6
access("/home/mmoya/.gtkrc-2.0.es_MX", F_OK) = -1 ENOENT (No such file or directory)
access("/home/mmoya/.gtkrc-2.0.es", F_OK) = -1 ENOENT (No such file or directory)
access("/home/mmoya/.themes/Ambiance/gtk-2.0/gtkrc", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/share/themes/Ambiance/gtk-2.0/gtkrc", F_OK) = 0
lstat("/usr/share/themes/Ambiance/gtk-2.0/gtkrc", {st_mode=S_IFREG|0644, st_size=18312, ...}) = 0
open("/usr/share/themes/Ambiance/gtk-2.0/gtkrc", O_RDONLY) = 6
access("/usr/share/themes/Ambiance/gtk-2.0/gtkrc.es_MX", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/share/themes/Ambiance/gtk-2.0/gtkrc.es", F_OK) = -1 ENOENT (No such file or directory)
access("/home/moya/.themes/Default/gtk-2.0-key/gtkrc", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/share/themes/Default/gtk-2.0-key/gtkrc", F_OK) = 0
lstat("/usr/share/themes/Default/gtk-2.0-key/gtkrc", {st_mode=S_IFREG|0644, st_size=82, ...}) = 0
open("/usr/share/themes/Default/gtk-2.0-key/gtkrc", O_RDONLY) = 6
access("/usr/share/themes/Default/gtk-2.0-key/gtkrc.es_MX", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/share/themes/Default/gtk-2.0-key/gtkrc.es", F_OK) = -1 ENOENT (No such file or directory)
El último gktrc
consultado dentro de la carpeta personal es
~/.themes/Default/gtk-2.0-key/gtkrc
. Decidí probar con éste y obtuve el
efecto deseado. Los ajustes en este fichero de recursos se mezclan (con mayor
precedencia) con aquellos en el fichero de recursos del tema. El Default
en
la ruta garantiza la independencia del tema que se esté usando.
No he encontrado documentación explícita de las llaves dentro de
gtk-icon-sizes
más allá de este enlace, de todos modos los nombres son
bastante sugerentes. Luego de un par de iteraciones decidí dejar fuera a
gtk-dnd
y gtk-dialog
. Finalmente me quedé con:
gtk-icon-sizes = " \
panel = 16,16 : \
panel-menu = 16,16 : \
gtk-button = 16,16 : \
gtk-menu = 16,16 : \
gtk-large-toolbar = 16,16 : \
gtk-small-toolbar = 16,16"
gtk-menu-images = 1
La referencia a gtk-menu-images
la encontré aquí. A continuación muestro
un par de imágenes de Nautilus con valores 0 y 1 para esta directiva.
No olviden reiniciar nautilus
y gnome-panel
después de cada cambio para
garantizar que recarguen la configuración. Basta matar los procesos con los
siguientes comandos, ya que gnome-session
se encarga de relanzarlos:
$ killall nautilus
$ killall gnome-panel