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.

No hay comentarios: