¿Cómo puedo agregar una aplicación al administrador de ventanas GNOME?

50

La documentación a bordo de GNOME cubre solo las cosas que cualquiera puede adivinar fácilmente. Tengo una aplicación para la que solo puedo comenzar desde la línea de comandos. No es que me importe usar un terminal pero ...

De todos modos, ¿cómo agrego el comando (y preferiblemente un buen logotipo) a GNOME WM?

mercado
fuente
Si hace clic con el botón derecho, ¿obtiene un elemento "Editar menú"?
slm
no, no hay menú de clic derecho en absoluto.
Mart

Respuestas:

88

En GNOME y otros entornos de escritorio compatibles con freedesktop.org , como KDE y Unity , las aplicaciones se agregan a los menús o al shell del escritorio a través de entradas de escritorio , definidas en archivos de texto con la .desktopextensión (referidos como archivos de escritorio ). Los entornos de escritorio crean menús para un usuario a partir de la información combinada extraída de las entradas de escritorio disponibles.

Los archivos de escritorio se pueden crear en cualquiera de dos lugares:

  • /usr/share/applications/ para entradas de escritorio disponibles para todos los usuarios del sistema
  • ~/.local/share/applications/ para entradas de escritorio disponibles para un solo usuario

Es posible que deba reiniciar GNOME para que las nuevas aplicaciones agregadas funcionen.

Por convención, los archivos de escritorio no deben incluir espacios o caracteres internacionales en su nombre.

Cada archivo de escritorio se divide en grupos , cada uno comenzando con el encabezado del grupo entre corchetes ( []). Cada sección contiene un número de pares clave , de valores , separados por un signo igual ( =).

A continuación se muestra una muestra del archivo de escritorio:

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Application Name
Comment=Application description
Icon=/path/to/icon.xpm
Exec=/path/to/application/executable
Terminal=false
Categories=Tags;Describing;Application

Explicación

  • [Desktop Entry]el Desktop Entryencabezado del grupo identifica el archivo como una entrada de escritorio
  • Type el tipo de entrada, los valores válidos son Application, LinkyDirectory
  • Encoding la codificación de caracteres del archivo de escritorio
  • Name el nombre de la aplicación visible en menús o lanzadores
  • Comment Una descripción de la aplicación utilizada en la información sobre herramientas
  • Icon el icono que se muestra para la aplicación en menús o lanzadores
  • Exec El comando que se utiliza para iniciar la aplicación desde un shell.
  • Terminal si la aplicación debe ejecutarse en una terminal, los valores válidos son trueofalse
  • Categories;lista separada por punto y coma ( ) de categorías de menú en la que se debe mostrar la entrada

Los argumentos de la línea de comando en la Execclave se pueden significar con las siguientes variables:

  • %f un solo nombre de archivo
  • %F Múltiples nombres de archivo.
  • %u Una sola URL.
  • %U Múltiples URLs.
  • %d Un solo directorio. Se usa junto con %fpara localizar un archivo.
  • %D Múltiples directorios. Se utiliza junto con %Fpara localizar archivos.
  • %n un solo nombre de archivo sin ruta.
  • %N múltiples nombres de archivo sin rutas.
  • %k un URI o nombre de archivo local de la ubicación del archivo de escritorio.
  • %v El nombre de la entrada del dispositivo.

Tenga en cuenta que ~las variables de entorno como $HOMEno se expanden dentro de los archivos de escritorio, por lo que cualquier ejecutable al que se haga referencia debe estar en el $PATHo en su ruta absoluta.

Una especificación de entrada de escritorio completa está disponible en el Centro de desarrollo de GNOME .

Lanzar guiones

Si la aplicación que se iniciará requiere que se realicen ciertos pasos antes de ser invocada, puede crear un script de shell que inicie la aplicación y apuntar la entrada del escritorio al script de shell. Suponga que una aplicación requiere ejecutarse desde un determinado directorio de trabajo actual. Cree un script de inicio en una ubicación adecuada para ( ~/bin/por ejemplo). La secuencia de comandos podría parecerse a la siguiente:

#!/bin/bash
pushd "/path/to/application/directory"
./application "$@"
popd

Establezca el bit ejecutable para el script:

$ chmod +x ~/bin/launch-application

Luego, apunte la Execclave en la entrada del escritorio al script de inicio:

Exec=/home/user/bin/launch-application
Thomas Nyman
fuente
Lo hice, puedo ver el icono debajo de las aplicaciones, pero cuando hago clic en la aplicación no se inicia, el cursor solo cambia a un símbolo de carga durante unos segundos. No hay mensaje de error.
Martes
@mart ¿Puede decirnos para qué aplicación está intentando agregar un lanzador?
Thomas Nyman
1
FTL: un juego independiente que compré en algún lugar de la web. A partir de la consola funciona.
Mart
1
@mart <path>/.FTLapuntaría a un archivo oculto llamado .FTL, que no es lo mismo que ./FTL, que apunta a un archivo llamado FTLen el directorio actual. Puede intentar iniciar a FTLtravés /full/path/path/to/FTLde una terminal para ver si obtiene algún resultado de error significativo. Por ejemplo, si el ejecutable busca bibliotecas en el directorio de trabajo actual, es posible que tenga que hacer una secuencia de comandos de inicio que haga algo similar pushd <path>; ./FTL; popdy apunte el Execespecificador en el archivo de escritorio a la secuencia de comandos de inicio.
Thomas Nyman
1
corrección: funciona desde el interior del directorio
Mart
12

Muy buena respuesta de Thomas Nyman.

Gnome viene con una herramienta GUI que gnome-desktop-item-editayuda a crear archivos * .desktop. Necesitamos usarlo desde la línea de comandos o crear un archivo de escritorio para ello.

Instrucciones para hacer la aplicación Gnome desde gnome-desktop-item-edit

  1. Abra la ventana de terminal y escriba el siguiente comando:

    gnome-desktop-item-edit --create-new / home / [su nombre de usuario] /. local / share / aplicaciones

  2. En la ventana abierta, complete lo siguiente: ingrese la descripción de la imagen aquí

    Name: Gnome Applicaiton

    Command: gnome-desktop-item-edit --create-new /home/[your user name]/.local/share/applications

    Haga clic en el icono para seleccionar un icono diferente.

  3. Haga clic en Aceptar para cerrar las ventanas.

  4. Cerrar la ventana de terminal

Prueba recién generada Gnome Application

  1. Tablero abierto
  2. Solicitud de tipo
  3. Deberías ver lo Gnome Applicationingresado antes
  4. Seleccionarlo
  5. Crea otra aplicación
Dudi Boy
fuente
Esto funciona muy bien, gracias. ¿Hay alguna forma de alterar en qué menú aparece la nueva aplicación? La mía apareció en Aplicaciones-> Otros
SteveP
-1

Las respuestas anteriores de Thomas Nyman y Dudi Boy son muy buenas y detalladas. Estoy publicando esto porque no encontré una respuesta para mi duda en ninguna otra publicación y tuve que buscar en problemas de git.

Después de seguir los pasos como Thomas Nyman sugirió que pude hacer que el ícono de mi programa apareciera en el menú de la aplicación. El problema aquí es que uso Dash to Dock como barra lateral y no pude fijar el ícono como favorito como otros íconos. Después de buscar, descubrí que necesita agregar la línea StartupWMClass=ApplicationNameen el .desktoparchivo. Después de eso, la opción de agregar a favoritos aparecerá haciendo clic derecho en el icono en Dash to Dock.

Jon Lord
fuente