Linux Adictos Pablinux  

¿Crees que crear archivos .desktop es difícil en Linux? Te proponemos un par de soluciones

Crear archivos .desktop en Linux

«Vuélvete a Windows», me decía quien me introdujo en Linux cuando veía que algunas cosas se me atragantaban y quería hacerlo como en el sistema de Microsoft. También me decía que «Linux no es Windows», y eso es así para lo bueno y para lo malo. Lo malo es que hay cosas que en otros sistemas es muy sencillo y en los basados en Linux no lo es tanto, como crear archivos .desktop, también conocidos como accesos directos.

Pero hay que diferenciar entre tipos de accesos directos, porque no todos son lo mismo. Ahora mismo, a mí se me ocurren al menos dos tipos de accesos directos: unos son los symlinks o enlaces simbólicos, que son un archivo muy pequeño que podemos ejecutar para acceder al original al que se enlaza; otros son los archivos .desktop, que son un tipo de enlace directo que contiene información como el nombre de una aplicación y su versión, y son los archivos que se encargan de lanzar muchas aplicaciones bajo Linux.

Creando archivos .desktop con una aplicación con interfaz de usuario

Tal y como explicamos aquí en LXA hace años, crear archivos .desktop en Linux no es que sea demasiado complicado. Además, el texto proporcionado nos sirve como una plantilla que sólo hay que editar para cada aplicación. Pero las cosas aún se pueden simplificar más.

Disponible en Flathub, hay una aplicación llamada Desktop Files Creator. Básicamente es una interfaz en la que le diremos el nombre, la ruta al ejecutable, si se ejecutará en el terminal o no… y ella se encargará de hacer el resto por nosotros. Pero si queremos algo aún más sencillo, podemos crearnos nosotros mismos un script/mini-app para hacer todo esto desde el terminal (se ve en la imagen de cabecera). El código en Python sería el siguiente:

#!/usr/bin/env python3
from io import open
import os

nombre_archivo = input("Nombre el archivo .desktop: ")
version = input("Versión de la aplicación: ")
nombre_app = input("Nombre de la aplicación: ")
comentario_app = input("Comentario de la aplicación: ")
ejecutable = input("Ruta al ejecutable: ")
icono = input("Ruta al icono de la app: ")
terminal = input("¿Se ejecutará en el terminal? (True para sí, False para no): ")
tipo_app = input("Tipo de aplicación (pon Application si tienes dudas): ")
categorias = input("Categorías en las que entra esta aplicación: ")
carpeta = input("Carpeta en donde está el ejecutable: ")

def crearDesktop():
    nota = open(nombre_archivo + ".desktop", "w")
    texto_entrada = ('[Desktop Entry]')
    texto_version = ('\nVersion=' + version)
    texto_nombreAplicacion = ('\nName=' + nombre_app)
    texto_comentario = ('\nComment=' + comentario_app)
    texto_ejecutable = ('\nExec=' + ejecutable)
    texto_icono = ('\nIcon=' + icono)
    texto_terminal = ('\nTerminal=' + terminal)
    texto_tipoapp = ('\nType=' + tipo_app)
    texto_categorias = ('\nCategories=' + categorias)
    texto_startupNotifyApp = ('\nStartupNotify=false')
    texto_ruta = ('\nPath=' + carpeta)
    texto = (texto_entrada + texto_version + texto_nombreAplicacion 
             + texto_comentario + texto_ejecutable + texto_icono 
             + texto_terminal + texto_tipoapp + texto_categorias 
             + texto_startupNotifyApp + texto_ruta)
    nota.write(texto)
    nota.close()
    nombreApp = nombre_app + ".desktop"
    os.system('chmod +x ' + nombreApp + '\nmv ' + nombreApp + ' ~/.local/share/applications')
    print("Archivo .desktop creado con éxito. Está en ~/.local/share/applications/ y debería aparecer también en el cajón de apps.")
        
crearDesktop()

Explicando el código

De lo anterior:

  • La primera línea es lo que se conoce como «Shebang» e indica con qué se tiene que abrir el script (puede ser diferente en algunas distribuciones Linux). No debería ser necesario si nos desplazamos a la ruta en donde guardemos el archivo .py y lo lanzamos con «python nombre_del_archivo.py«, pero sí si queremos atajar un poco más como explicaremos más tarde.
  • La segunda y la tercera línea importa lo necesario para crear el archivo, ya que es necesario poder escribir en el disco duro.
  • Luego se crean las variables que más tarde se usarán para escribir el contenido en el archivo .desktop.
  • En la función crearDesktop(), primero abre un archivo, luego se añaden los parámetros de información del acceso directo, luego se crea el archivo .desktop, se le da permisos de ejecución y lo mueve a la carpeta ~/.local/share/applications. Y eso sería todo.

Diría que más fácil imposible, pero sería más fácil si existiera una manera de crearlos con un menú contextual de Nautilus, Dolphin o el gestor de archivos que estemos usando. El problema es que en Linux esto no funciona así. En los archivos .desktop se puede añadir también otra información, como traducciones y otras maneras de abrir las aplicaciones (como el modo incógnito en un navegador), por lo que crear este tipo de accesos directos no es tan directo, valga la redundancia.

Y ya se me olvidaba, si queremos poder lanzar el script anterior desde cualquier ventana del terminal, debemos mover el archivo .py que hemos creado a la carpeta /bin. Que no se acostumbre el que no sepa lo que está haciendo, porque en esa carpeta van los ejecutables y hay que tener cuidado con lo que se toca. En cualquier caso, opciones siempre hay. Sólo hay que saber dónde buscar. Además, crear y compartir también es algo común en Linux.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.