Script para crear lanzadores personalizados

Hace un tiempo publicamos una entrada en la que se explicaba cómo crear, de forma manual, lanzadores personalizados para Unity. En este caso, vamos a ver un sencillo script que nos permite automatizar dicha tarea; únicamente tendremos que facilitarle los siguientes datos:

- Nombre del lanzador (ej: Eclipse).
- Ruta completa del archivo ejecutable (ej: /home/miusuario/eclipse/eclipse).
- Ruta completa del archivo de icono (ej: /home/miusuario/eclipse/icon.xpm).

El código del script es el siguiente:

#!/bin/bash

read -p "Nombre del lanzador: " NOMBRE # Se nos pide el nombre del lanzador.
if [ -e /usr/share/applications/$NOMBRE.desktop ]; then # Si el lanzador ya existe...
echo "ERROR: El lanzador ya existe. Abortado."
exit # ...salimos del script.
fi

read -p "Ruta completa del archivo ejecutable: " RUTAEXE # Se nos pide la ruta completa del archivo ejecutable.
if [ ! -e $RUTAEXE ]; then # Si el archivo ejecutable no existe...

echo "ERROR: El archivo no existe. Abortado."
exit # ...salimos del script.
elif [ ! -x $RUTAEXE ]; then # O si el archivo no es ejecutable...
echo "ERROR: El archivo no es ejecutable. Abortado."
exit # ...salimos del script.
fi

read -p "Ruta completa del archivo de icono: " RUTAICO # Se nos pide la ruta completa del archivo de icono.
if [ ! -e $RUTAICO ]; then # Si el archivo de icono no existe...
echo "ERROR: El archivo no existe. Abortado."
exit # ...salimos del script.
fi

echo "[Desktop Entry]" > $NOMBRE.desktop # Creamos el archivo lanzador
echo "Type=Application" >> $NOMBRE.desktop # escribiendo en él los datos
echo "Terminal=false" >> $NOMBRE.desktop # anteriormente facilitados.
echo "Name=$NOMBRE" >> $NOMBRE.desktop
echo "Exec=$RUTAEXE" >> $NOMBRE.desktop
echo "Icon=$RUTAICO" >> $NOMBRE.desktop

echo "Lanzador creado."
echo "Ahora se moverá al directorio '/usr/share/applications/'."
echo "Introduce tu contraseña de 'root' si es necesario."

sudo chown root:root $NOMBRE.desktop # Hacemos que el lanzador pertenezca a root
sudo mv $NOMBRE.desktop /usr/share/applications/ # y lo enviamos al directorio de los lanzadores.

read -n 1 -p "Finalizado. Pulsa una tecla para salir..."
echo ""

Para poder hace uso de este script, debemos guardar su código en un archivo y darle permiso de ejecución. Yo le he llamado lanzpers.sh y le he otorgado dicho permiso desde la terminal con chmod +x lanzpers.sh . En la siguiente captura tenemos un ejemplo de ejecución:

Comprobamos que el contenido del lanzador recién creado es el correcto:

Lo más cómodo es poder utilizar el script sin abrir una terminal. Para ello, sólo tenemos que activar la ejecución de archivos de texto en Nautilus - Editar - Preferencias; cualquiera de las dos opciones marcadas en verde es válida:


Saludos.

Comments are closed.