Saltar a contenido

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:

App Icon

Podemos descargarla asi:

~/launchers $ wget -O regards_icon.png  https://www.deadveloper.com/nav/bash/images/regards_icon.png

El directorio de nuestra aplicacion tendra este contenido con los 2 archivos:

~/launchers $ ls -ltra
 regards_icon.png
 regards_builder.sh

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

sudo su
cd /usr/share/applications
touch 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)

Boton busqueda aplicaciones

Filtrando con el nombre de la aplicacion (en este caso Regards App) o tambien por lo especificado en la seccion Keywords

Keywords=Text;Editor;Plaintext;Write;gedit;

Looking for the application

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) Looking for the application

Ahora podemos usarlo al pulsar en el icono

Execute from App icon

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
Editamos los archivos e incluimos algo de ejecucion:

say_bye.sh

#!/bin/bash
read -p "Please insert your Name: " userName
echo "Bye bye $userName !!"
sleep 2

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

Actions=say-bye;say-something;
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
[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
Actions=say-bye;say-something;
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

[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
Terminal=true

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: Contextual Menu actions

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 Abrir con

Al seleccionar nuestra aplicacion se ejecutara el script indicado en la seccion Exec

Exec=/home/dpena/launchers/regards_builder.sh %U
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 especificacion

6. 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