EDITAR 1

EDITAR 1

Estoy usando Firefox para ejecutar algunas aplicaciones web como "independientes": creo un nuevo perfil con Firefox, específico para esa aplicación, configuro la primera página, inicio sesión y personalizo la interfaz de usuario según las necesidades específicas.

Luego, puedo iniciar rápidamente una instancia de esa aplicación web haciendo:

firefox --no-remote -P My_app_profile the_app_url

Para hacerlo aún mejor, creé un my_web_app.desktoparchivo, lo coloqué en ~/.local/share/applicationy lo puse como favorito, para poder ejecutarlo rápidamente desde la barra lateral de gnome shell.

El problema es que, después de ejecutar la aplicación, veo quefirefoxse está ejecutando, y no mi aplicación. Por ejemplo, hice un acceso directo para Trello, pero después de iniciarlo, veo esto:

Firefox está resaltado, trello no.

Ahora tiene sentido porqueesFirefox que se está ejecutando, pero me gustaría ver mi aplicación resaltada y tener el ícono de Firefox libre para usarlo como si no se estuviera ejecutando ninguna otra instancia.

Pensé que gnome podría resaltar los íconos dependiendo del nombre del ejecutable, pero un simple enlace simbólico a Firefox no provocaría un cambio de nombre (es decir, link /usr/bin/firefox /usr/bin/my_app_firefoxtodavía cuenta como Firefox).

¿Tiene alguna idea sobre cómo solucionar este problema? Estoy usando gnome shell 3.18.2.

EDITAR 1

Aquí está el archivo trello.desktop como ejemplo. No soy un experto en las opciones, por lo que probablemente me equivoqué en algo terrible... Pero si lo hiciera, no parece algo que pudiera causar el comportamiento no deseado.

[Desktop Entry]
Version=1.0
Name=Trello (FF)
GenericName=Trello Dashboards
Comment=Trello in FireFox
Exec=firefox --no-remote -P App_Trello http://trello.com
Icon=trello
Terminal=false
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
Categories=Network;WebBrowser;
Keywords=web;browser;internet;
X-Desktop-File-Install-Version=0.22

EDITAR 2

Así que quería comprobar elcódigo fuente de gnome-shellpara ver cómo esto podría suceder. encontré que en elEstrellarsecada entrada está asociada a algunaaplicación shelly aparentemente quiero asegurarme de que la identificación de mis aplicaciones sea única.

Usando el espejo (Alt+F2 lg), pude ver que mis aplicaciones en ejecución actuales se llaman "firefox.desktop":

appSys = Shell.AppSystem.get_default()
ll = appSys.get_running()
ll[0].get_id() // firefox.desktop (0 is the ID of the firefox app in my case)

Si ejecuto mi aplicación trello.desktop, el get_running()método devuelve la misma cantidad de entradas, por lo tanto mi aplicación no produce una nueva entrada y mi hipótesis de tener una identificación única parece confirmada.

Entonces llego alGAppInfo código fuentepara comprobar cuál es el ID y me envía de vuelta alespecificación del menú xdg. Y, a partir de ahí, logroencontrareste:

Para determinar el ID de un archivo de escritorio, haga que su ruta completa sea relativa al componente $XDG_DATA_DIRS en el que está instalado el archivo de escritorio, elimine el prefijo "aplicaciones/" y convierta '/' en '-'.

Mi archivo .desktop estaba en $HOME/.local/share/applications, que NO estaba en mi $XDG_DATA_DIRS.

Moví el archivo trello.deskop a un directorio en esa ruta y reinicié el shell, pero la aplicación aún aparece como firefox.desktop, por lo que aparentemente el ID sigue siendo el mismo; de hecho, la aplicación todavía está agrupada con otras ventanas de Firefox.

¿Cualquier sugerencia?

Respuesta1

Entonces, aparentemente mi segunda edición no fue correcta: la forma en que GNOME Shell determina la agrupación de aplicaciones no es la que describí.

Después de preguntar en el canal IRC gnome-shell, el usuario halfline me proporcionó la política para agrupar aplicaciones en íconos de Dash:

La propiedad _GTK_APPLICATION_ID de la ventana coincide con la identificación del archivo de escritorio o WM_CLASS coincide con la identificación del archivo de escritorio o _NET_WM_PID coincide con el archivo de escritorio iniciado o StartupWMClass en el archivo de escritorio coincide con WM_CLASS en la ventana

También sugirió que es posible cambiar Firefox WM_CLASS, y tiene razón, ya que hay una --classbandera para Firefox que permite cambiarlo.

He aquí un ejemplo:

$ firefox &
$ xprop WM_CLASS
WM_CLASS(STRING) = "Navigator", "Firefox"

Usando esa bandera obtengo

$ firefox --class "Trello" &
$ xprop WM_CLASS
WM_CLASS(STRING) = "Navigator", "Trello"

que solo tiene que coincidir con el ID del archivo del escritorio. Ahora los iconos están agrupados correctamente.

Además, tenga en cuenta que epiphany tiene soporte para crear aplicaciones de escritorio, manejando correctamente los enlaces con el navegador predeterminado, por lo tanto, para mi propósito original, es incluso mejor que Firefox.

información relacionada