Instalando aplicaciones en Ubuntu (Gnome desktop)
Si queremos dar mas accesibilidad y facilidad de uso a nuestros scripts o aplicaciones, podemos añadirlos y registrarlos en Ubuntu tal y como si fueran una aplicacion de escritorio.
De esta manera los tendremos disponibles tanto en el escritorio , como en menu contextuales, etc…
1. Creando nuestra aplicacion
Vamos a crear un script que tendra el codigo de nuestra aplicacion de ejemplo. En este caso lo creamos en la carpeta /home/{youruser}/launchers del usuario, pero lo puedes crear donde mejor te venga.
cd ~
mkdir launchers
cd launchers #
touch regards_builder.sh # creamos el archivo que contendra el script
sudo chmod +x ./regards_builder.sh # Damos permisos de ejecucion (+x)
(regards_builder.sh) con este contenido:
#!/bin/bash
read -p "Please insert your Name: " userName
echo "Hi $userName !! nice to meet you"
sleep 2
Vamos tambien a descargar una imagen que valdrá de icono de aplicacion:
Podemos descargarla asi:
El directorio de nuestra aplicacion tendra este contenido con los 2 archivos:
2. Registrando la aplicacion en Gnome Ubutu
Ahora que tenemos el codigo de nuestra aplicacion, vamos a registrarlo en Gnome.
Es tan sencillo como añadir un archivo con extension .desktop en la carpeta /usr/share/applications
Vamos a la carpeta /usr/share/applications y creamos un archivo llamado regardsApp.desktop
Abrimos el archivo con nuestro editor favorito e introducimos este contenido:
[Desktop Entry]
Name=Regards App
Comment=Regards Application
Exec=/home/dpena/launchers/regards_builder.sh %U
Terminal=true
Type=Application
StartupNotify=true
MimeType=text/plain;
# TRANSLATORS: Do NOT translate or transliterate this text!
# This is an icon file name.
Icon=/home/dpena/launchers/regards_icon.png
Categories=GNOME;GTK;Utility;TextEditor;
# TRANSLATORS: Do NOT translate or localize the semicolons!
# The list MUST also end with a semicolon!
# Search terms to find this application.
Keywords=Text;Editor;Plaintext;Write;gedit;
DBusActivatable=true
X-Ubuntu-Gettext-Domain=gedit
Ya tenemos registrada nuestra aplicacion
3. Registrando la aplicacion en los menus
Una vez creada la aplicacion y registrandola en el registro de aplicaciones, queremos que tambien podamos verla desde la interfaz visual (Gnome).
Buscamos en el menu aplicaciones (el boton de los puntitos)
Filtrando con el nombre de la aplicacion (en este caso Regards App) o tambien por lo especificado en la seccion Keywords
Si hacemos boton derecho en él , podemos añadirlo a favoritos (con lo cual nos saldra en el menu de aplicacion fijas que tenemos en ubuntu 20 a la izquierda)
Ahora podemos usarlo al pulsar en el icono
4. Añadiendo varios ejecutables a nuestro icono
Hasta aqui hemos creado una aplicacion que se puede ejecutar desde un icono de la barra de favoritos.
Vamos a añadir mas opciones ejecutables a nuestro programa.
Creamos 2 scripts mas en el directorio de nuestra aplicacion (~/launchers)
#!/bin/bash
~/launchers $ touch say_bye.sh
~/launchers $ suco chmod +x ./say_bye.sh
~/launchers $ touch say_something.sh
~/launchers $ suco chmod +x ./say_something.sh
say_bye.sh
say_something.sh
#!/bin/bash
read -p "Please insert your Name: " userName
echo "I have something for you $userName !!"
sleep 2
**Vamos a añadir esos 2 scripts como opciones contextuales a nuestra aplicacion.
Editamos el archivo que usamos para registrarlo /usr/share/applications/regardsApp.desktop y añadimos la seccion Actions
Y mas abajo en ese archivo definimos las acciones say-bye y same-something apuntando a sus respectivos scripts.[Desktop Action say-bye]
Name=Say Bye Bye
Exec=/home/dpena/launchers/say_bye.sh
Terminal=true
[Desktop Action say-something]
Name=Say Something
Exec=/home/dpena/launchers/say_something.sh
El contenido final del fichero tendra este aspecto:
regardsApp.desktop
Gnome se instancia al arrancar el entorno grafico, asi que estas opciones de menu contextual no estaran disponibles hasta que reiniciemos el ordenador.
Podemos ver que con boton derecho nos salen las actions contextuales que definimos en el fichero .desktop:
5. Abrir un determinado archivo o directorio con nuestra aplicacion
Podemos ir al explorador de archivos y pulsar boton derecho sobre el archivo y “Abrir con otra aplicacion”
En ese menu, buscar nuestra aplicacion tecleando su nombre/keyword
Al seleccionar nuestra aplicacion se ejecutara el script indicado en la seccion Exec
Esta seccion indica que se ejecutara ese script sh y que el primer argumento pasado %%U es el directorio actual (o del directorio seleccionado) Se pueden consultar todas las opciones/wildcard en la especificacion6. Referencias
El codigo de este tutorial lo puedes obtener en https://github.com/deadveloper666/desktop_app_example
Todas las opciones posibles y especificaciones de este archivo .desktop, estan recogidas en la especificacion oficial https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-0.9.5.html#example