Ropa prestada
jun 26, 2026 14:30 • 287 visitas
Hay quien sigue creyendo que las aplicaciones de escritorio nacen en oscuros laboratorios de programadores con barba y problemas de sueño. Como si cada icono del menú fuese el fruto de una compleja alquimia de compiladores, bibliotecas y sacrificios rituales a los dioses del software. Pero la realidad, a veces, no es tan romántica.
Vivimos rodeados de servicios web que han terminado ocupando el lugar que antes pertenecía a las aplicaciones tradicionales. Correo, calendarios, gestores de tareas, editores de texto, etc. Todo sucede en una pestaña del navegador. Todo vive en una URL. Todo es efímero. Y, sin embargo, hay algo incómodamente humano en querer que ciertas herramientas tengan su propio espacio. Su propia ventana. Su propia silla en el salón de nuestra máquina. Para eso existe Nativefier. Primero instalamos la herramienta:
sudo npm install -g nativefier
Y con ella, convertimos cualquier servicio web en una aplicación de escritorio autónoma:
nativefier "https://direccion-del-servicio-web.com" --name "MiAplicacion"
Y entonces ocurre la pequeña magia: Nativefier genera una carpeta con todo lo necesario para ejecutar la aplicación como si hubiese existido allí desde siempre: un ejecutable, sus dependencias y la agradable ilusión de que internet y el escritorio siguen siendo mundos distintos. La carpeta generada puede vivir donde queramos dentro de nuestro directorio personal, aunque resulta razonable moverla a algún lugar civilizado, por ejemplo:
~/Aplicaciones/MiAplicacion-linux-x64/
Porque el orden no evita el desastre, pero al menos permite localizarlo. El siguiente paso consiste en enseñarle al sistema que nuestra criatura existe. Para ello creamos el fichero miaplicacion.desktop dentro de ~/.local/share/applications/. Allí definimos su nombre, el ejecutable que debe lanzar, el icono que utilizará y la categoría donde aparecerá en el menú de aplicaciones:
[Desktop Entry]
Name=MiAplicacion
Exec=/home/usuario/Aplicaciones/MiAplicacion-linux-x64/MiAplicacion
Icon=gnome-mail-send-receive
Type=Application
Categories=Network;Email;
Terminal=false
Después, guardamos el icono correspondiente en ~/.local/share/icons/. Y aquí llega uno de esos detalles absurdamente técnicos que explican por qué la informática sigue siendo una disciplina profundamente artesanal: la ventana que acabamos de crear tiene una identidad secreta. Un nombre interno. Una especie de alias clandestino que el gestor de ventanas utiliza para reconocerla. Para descubrirlo ejecutamos:
xprop WM_CLASS
El cursor se transforma en una cruz, como si estuviésemos a punto de realizar una autopsia digital. Seleccionamos la ventana de la aplicación y la terminal responderá con algo parecido a:
WM_CLASS(STRING) = "miaplicacion-nativefier-xxxxxx", "miaplicacion-nativefier-xxxxxx"
Ese identificador debe añadirse al fichero .desktop mediante la directiva StartupWMClass. Si nos saltamos este paso, durante la ejecución de la aplicación se generará un molesto segundo icono en el dock.
[Desktop Entry]
Name=MiAplicacion
Exec=/home/usuario/Aplicaciones/MiAplicacion-linux-x64/MiAplicacion
Icon=gnome-mail-send-receive
Type=Application
Categories=Network;Email;
Terminal=false
StartupWMClass=miaplicacion-nativefier-xxxxxx
Y entonces, por fin, todas las piezas encajan. El icono abre la ventana correcta. El sistema deja de confundir nuestra aplicación con un navegador disfrazado. La integración parece natural. Y nadie diría que detrás de esa apariencia impecable no hay más que una página web vestida con ropa prestada.
Antes de continuar...
Detrás de cada artículo de Bitácora hay tiempo, investigación y desarrollo contínuo. Si quiere ayudar a mantener este proyecto libre e independiente, apóyeme: