Agregar entradas al menú en entornos basados en GNOME


El menú de aplicaciones es algo que se puede personalizar en todas las distribuciones GNU/Linux. En cada entorno de escritorio se hace gráficamente de una manera distinta, con una aplicación distinta... Pero, al menos en los entornos basados en GNOME, todos tienen un modo común: mediante la edición de archivos .desktop se pueden agregar entradas al menú de aplicaciones. Así que en este post enseñaré cómo agregar entradas al menú en entornos basados en GNOME mediante creación de archivos .desktop.


Pues bien, como ya digo más arriba, esta solución sirve, al menos que yo sepa, en entornos basados en GNOME. ¿Cuáles? GNOME, GNOME Shell, Pantheon (entorno de elementary OS), Cinnamon, MATE, Unity... y seguro que la lista es más larga. También sé que hay un modo parecido (si no el mismo) para KDE, y aunque es muy parecido al sistema que utilizan en GNOME, desconozco cómo se hace. Así que de momento este post es aplicable a los usuarios de los entornos antes mencionados en negrita.

Este método es muy útil para programas y apliaciones que descargamos y que no precisan instalación, sino que son portables (como los programas que vienen comprimidos en tar.gz listos para usar).

Vamos a ver un ejemplo de cómo se haría este archivo y qué hacer con él, en concreto con para la aplicación eclipse (un IDE de programación) descargada directamente desde la web con un tar.gz. Si queréis seguir el ejemplo con el mismo programa, podéis descargar eclipse desde este enlace (64 bits).

Comencemos con el programa ya descargado y descomprimido. Accedemos a la carpeta de instalación del programa al que queremos agregar al menú (en este caso, la carpeta descomprimida de eclipse), y creamos un archivo, al que daremos un nombre como "nombre-de-la-apliacion.desktop", teniendo en cuenta que no debemos poner espacios en el nombre del archivo, ni carácteres que no sean UTF-8. Por ejemplo, yo voy a llamar al archivo eclipse.desktop, ya que es para esa aplicación. En el interior del archivo, seguimos la siguiente plantilla:
[Desktop Entry]
Name=nombre-de-aplicación
Type="Application" para que sea una aplicación
Exec=ejecutable-de-apliación
Terminal="false" para que no se ejecute en terminal
Icon=nombre-del-archivo-del-icono
Comment=descripción de aplicación (podemos poner espacios)
NoDisplay="false" si queremos que se muestre en el menú
Categories=categorias de apliación, separadas por ";"

Por lo que para esta apliación, eclipse, el archivo sería el siguiente:
[Desktop Entry]
Name=eclipse
Type=Application
Exec=eclipse
Terminal=false
Icon=eclipse
Comment=IDE Eclipse para desarrollo
NoDisplay=false
Categories=Development;IDE;

Con el archivo ya creado y guardado, abrimos un terminal, navegamos hasta la carpeta donde se encuentra el archivo y escribimos:

sudo desktop-file-install archivo.desktop
sudo cp ARCHIVO-ICONO /usr/share/pixmaps/ARCHIVO-ICONO

En el caso del ejemplo:

sudo desktop-file-install eclipse.desktop
sudo cp icon.xpm /usr/share/pixmaps/eclipse.xpm 

Ahora toca crear un enlace simbólico del ejecutable en la carpeta de ejecutables del sistema (la ruta, la de la carpeta anterior, donde tengáis la carpeta "eclipse" o de la apliación en concreto que queráis la entrada en el menú):

cd /usr/local/bin
sudo ln -s /RUTA/HASTA/CARPETA/eclipse/eclipse

Y listo, con esto, se habrá añadido a nuestro menú una entrada con la aplicación que queremos y su correspondiente icono, nombre y descripción.

Gracias a José Joaquín Caño Quintero y Juan José Torrejón Rodríguez por aportar esta solución, la cual nos ha servido a los 3.
Actualizo: hay una forma todavía más rápida, la cual encontramos aquí. La explico a continuación.
Vamos esta vez a crear directamente un archivo de acceso directo en el directorio de accesos directos del sistema. Creamos uno de estos archivos y lo editamos con nuestro editor favorito (yo usaré nano):

sudo nano /usr/share/applications/archivo.desktop
El contenido de este archivo será el mismo que el de el anterior (lo explicaré nuevamente con el ejemplo de eclipse), solo que esta vez habrá que especificar la ruta absoluta hasta el icono y el lanzador (Exec) de la aplicación:
[Desktop Entry]
Name=eclipse
Type=Application
Exec=/ruta/hasta/lanzador/eclipse
Terminal=false
Icon=/ruta/hasta/icono/eclipse.png
Comment=IDE Eclipse para desarrollo
NoDisplay=false
Categories=Development;IDE;
(Especificar que el icono puede estar en formato png, xpm, o el que traiga).Guardamos y salimos (CTRL+X). Y listo! Ya tenemos el icono en nuestro menú, sin tener que instarlo con desktop-file-install ni nada!

4 comentarios :

  1. Fernando Pablo Romero Navarro15 de octubre de 2013, 10:51

    Muy bueno este "truco" Raúl, no lo conocía. Creo que en la propiedad
    "Exec" también puedes poner la ruta absoluta del fichero ejecutable y
    de esa forma te ahorras el enlace simbólico.

    También
    hay un paquete llamado "alacarte" que proporciona la funcionalidad
    básica para crear menús y entradas de menús para GNOME y es muy fácil de
    usar. Eso sí, para hacer cosas más sofisticadas pienso que hay que
    recurrir al método que comentas.

    ResponderEliminar
  2. Exacto, como comentas, también se puede hacer con "alacarte". La pega es que, para usuarios que como yo utilizan elementary OS, alacarte no es una solución viable, ya que al instalarlo instala además el entorno GNOME entero... así que, como esta sí es una solución más general para todos, ha sido la que he decidido publicar. Aún así, gracias por aportar la idea, para que otros lectores puedan verlo :)



    Un saludo!

    ResponderEliminar
  3. Fernando Pablo Romero Navarro17 de octubre de 2013, 11:05

    Pues la verdad es que tampoco conocía esta distribución basada en Ubuntu, en fin, parece que a Ubuntu "le crecen los enanos". Cambiando de tema y como veo que te defiendes muy bien con las distribuciones de GNU/Linux quería hacerte una propuesta para colaborar en un proyecto de software libre, a través de tu dirección de contacto. No hay que escribir ninguna línea de código, las tareas a realizar consisten en la configuración y administración de una distribución basada en Ubuntu autóctona y hacer un poquitín de "troubleshooting".

    ¿Te interesa saber más sobre este proyecto?

    NOTA: Lo esencial y la parte más difícil ya está hecho.

    ResponderEliminar
  4. Pues ahora mismo así a bote pronto... no sé que decir xD La verdad es que con esto de estar en la universidad no sé si tendría mucho tiempo, pero sí, dame más información y ya veo qué habría que hacer más concretamente y en ese caso me lo pienso. Gracias por la propuesta :)


    Un saludo!

    ResponderEliminar