lunes, 4 de junio de 2012

Cómo cambiar el menú de aplicaciones de Gnome 3

Como primera opción, se podría modificar el menú nuestro usuario con la aplicación alacarte. Si tenemos más usuarios en la máquina, podemos copiar los ficheros resultantes en el resto de perfiles. Es un método más o menos sencillo y que, si sólo tenemos una máquina que administrar, puede ser suficiente.

Pero si tenemos que administrar varios ordenadores y queremos obtener una solución algo más limpia y fácilmente replicable, tenemos que leer con atención la especificación de menús de escritorio.

En dicha especificación se advierte que hay un fichero principal, que suele estar en la ruta /etc/xdg/menus/applications.menu y que se puede extender añadiendo más ficheros en /etc/xdg/menus/applications-merged/. Esto conlleva un gran avance respecto a la primera opción, ya que sólo tenemos que preocuparnos de una única ubicación global por máquina y parece que no tenemos que modificar ningún fichero del sistema. Y digo parece, porque si queremos añadir aplicaciones a los menús sí que sirve, pero si lo que queremos es quitar (u ocultar) lanzadores o categorías, puede ser bastante complicado (por no decir, en algunos casos, imposible). La razón es que en el fichero applications.menu, se añaden primero las modificaciones de los archivos que se hayan puesto en applications-merged/ y luego se sobrescriben con las reglas del propio applications.menu.

Pero si seguimos leyendo con atención la especificación, veremos que existe la solución perfecta. No hace falta escribir complicadas reglas que no interfieran con las del sistema (applications.menu) ni tener que modificar el fichero de configuración (estas modificaciones podrían incluso perderse si se actualiza el paquete que contiene el archivo: gnome-menus).

Se trata de hacer uso de la variable XDG_MENU_PREFIX. Sólo tenemos que darle un valor (por defecto es vacío para que coincida con la ruta del fichero applications.menu) y crear el fichero con las modificaciones del menú.

Por ejemplo, se podría definir un valor para esta variable de entorno en el fichero /etc/environment de la forma:


export XDG_MENU_PREFIX="abc_web-"

Y después crear el fichero /etc/xdg/menus/abc_web-applications.menu. De este modo, ya no se analiza el archivo /etc/xdg/menus/applications.menu, por lo que no será necesario tener en cuenta las reglas de ese fichero, para hacer el nuestro.

sábado, 26 de mayo de 2012

Control de volumen simple en Gnome 3

En Gnome 3, hay nuevos applets para los paneles del escritorio. También hay shell extensions, que permiten añadir funcionalidades al escritorio. En uno de estos applets, el que se hace llamar miniaplicación completa de indicadores, aparece el control de volumen. Pero ya no es un simple slider para manipular el volumen, sino que integra el control de la aplicación reproductora de audio por defecto del sistema (Rhythmbox en Ubuntu 12.04).

¿Dónde se encuentra entonces el applet que estaba disponible en Gnome 2? ¿Acaso ha desapararecido?

Para los nostálgicos de aquel control, o para los que sólo quieren el control de volumen y no el resto de indicadores del nuevo applet de Gnome 3, voy a desvelaros qué ha pasado.

En realidad no ha desaparecido, sino que se encuentra oculto. Supongo que es para promocionar el uso del nuevo (que realmente tiene una funcionalidad más completa), pero se ha perdido en personalización, ya que no es muy sencillo mostrar sólo los indicadores que nos hacen falta, de entre todos los que muestra la miniaplicación completa de indicadores.

La solución para que vuelva a mostrarse en el área de notificaciones (este área es un applet más que habrá que añadir en alguno de los paneles del escritorio) es muy sencilla. Tan sólo debemos modificar el atributo OnlyShowIn del fichero /etc/xdg/autostart/gnome-sound-applet.desktop. Debería quedar así:


OnlyShowIn=GNOME;

Si os fijáis en su valor original (OnlyShowIn=;), al estar vacío, no se mostraba en ninguno de los escritorios disponibles, aunque sí está preparado para iniciarse en el comienzo de la sesión gráfica (existe un lanzador en /etc/xdg/autostart/).

sábado, 12 de mayo de 2012

Cómo cambiar la imagen de fondo de LightDM en Ubuntu 12.04

Con Simple LightDM Manager, en Ubuntu Oneiric, podíamos personalizar el logo y la imagen de fondo de LightDM. Sin embargo, la configuración del gestor de sesiones ha cambiado y ya no se realiza a través de un fichero (el archivo /etc/lightdm/unity-greeter.conf ha desaparecido), sino a través de dconf. De todas formas, en el fichero /etc/lightdm/lightdm.conf se siguen modificando algunos parámetros del programa (como la sesión gráfica por defecto o si se muestra la lista de usuarios, por ejemplo).

Para empezar, vamos a escoger una imagen adecuada a la resolución de nuestro monitor. Un buen sitio para elegir es Gnome-Look. En la sección de wallpapers hay una amplia selección donde, en cada imagen, viene documentada la resolución y la licencia de uso. En mi caso, me he decantado por Ovalized Wallpaper. Tras descargarla, la he copiado en el directorio /usr/share/backgrounds/ con el nombre lightdm-wallpaper.jpg (con el usuario root).

La posición de la caja para la elección de usuario de la máquina no se puede modificar, por lo que es mejor que no haya nada significativo en la imagen que escojamos para el fondo en dicha área. Como tampoco se puede cambiar la posición del logotipo que aparece abajo a la izquierda. Así que, si también queremos modificarlo, será mejor hacer uno de unas dimensiones parecidas al original (/usr/share/unity-greeter/logo.png).

Vamos a cambiar 2 propiedades de la configuración gráfica de LightDM: la imagen de fondo y quitar la malla (grid) que se dibuja por defecto. Estas propiedades se cambian en el esquema com.canonical.unity-greeter de dconf. Se podrían cambiar a través de la utilidad dconf-editor (que habría que instalar porque no viene por defecto), pero teniendo en cuenta que deberíamos hacerlo con el usuario lightdm. No serviría modificarlas con nuestro propio usuario, ya que LightDM se ejecuta con su propio usuario y hace sólo caso a los valores de su configuración.

Voy a explicar entonces un método alternativo y en el que sólo es necesario un intérprete de comandos y un editor de texto. La receta consiste en modificar globalmente las propiedades (a nivel de sistema) para que aplique a todos los usuarios de la máquina. Además, las voy a bloquear para que ningún usuario pueda sobreescribir estos valores. La explicación teórica del proceso se puede encontrar en la página dconf System Administrator Guide.

Debo decir que el nuevo sistema de configuración de Gnome 3 es bastante más sencillo de modificar para los administradores que el anterior (basado en GConf en Gnome 2). La mala noticia es que todavía hay bastantes aplicaciones de Gnome que siguen con GConf, en lugar de utilizar el nuevo sistema.

En primer lugar, vamos a crear la estructura de directorios necesaria. Como vamos a necesitar escribir en /etc, deberemos hacerlo como root:


$ sudo su
# mkdir -p /etc/dconf/db/local.d /etc/dconf/db/local.d/locks /etc/dconf/profile

Después, vamos a crear los ficheros de configuración.

En el archivo /etc/dconf/db/local.d/light.conf establecemos los nuevos valores de las propiedades:


[com/canonical/unity-greeter]
background='/usr/share/backgrounds/lightdm-wallpaper.jpg'
draw-grid=false

En el fichero /etc/dconf/db/local.d/locks/lightdm, le decimos al sistema dconf qué propiedades están bloqueadas para que no puedan modificarlas los usuarios:


/com/canonical/unity-greeter/background
/com/canonical/unity-greeter/draw-grid

Por último, crearemos el fichero /etc/dconf/profile/user para especificar la prioridad de las bases de datos de dconf.


user-db:user
system-db:local

Sólo falta ejecutar el comando dconf update (como root) para que el sistema dconf rehaga las bases de datos y se apliquen los cambios.

Y eso es todo. Este mismo método de cambio de propiedades sirve para el resto de esquemas disponibles en dconf.