Cómo forzar que Chrome se abra como una nueva aplicación desde un archivo .desktop

Mar 14 2020

Google Chrome tiene una opción para iniciar una página web como una 'aplicación Chrome' con ventana, que, cuando se usa con Gnome Desktop, creará un archivo .desktop especial que se puede usar para ejecutar Chrome en un modo independiente con su propio icono se muestra en el tablero / muelle y selector de ventana.

El problema con este modo es que Chrome intenta hacerse pasar por el tema GTK, lo que resulta en un título de ventana bastante feo. También ocupa espacio innecesario mostrando la barra de direcciones y otros controles en la parte superior de la ventana. Esto es especialmente cierto cuando se usa una conexión insegura, que es típica para acceder a aplicaciones alojadas localmente.

Una alternativa es iniciar Chrome con una --app=http://example.comopción, lo que resulta en una experiencia mucho mejor. Una comparación de la apariencia de los dos modos se encuentra al final de esta pregunta.

Puedo crear un archivo .desktop para iniciar Chrome con la --appopción y un ícono que especifico, pero esto da como resultado que la nueva ventana se agrupe con otras instancias de Chrome, que comparten la misma entrada genérica del ícono de Chrome en el tablero / dock y el selector de ventanas .

¿Existe una opción, ya sea en Chrome o Gnome, para forzar que la ventana que resulta del archivo .desktop se comporte como una aplicación completamente separada?

Aplicación Google Chrome:

Google Chrome con --appopción:

Respuestas

1 bac0n Mar 14 2020 at 19:31

Usando applicationize para crear aplicaciones de Chrome.

Suelta tu extensión en chrome: // extensions

Un ejemplo de un archivo .desktop:

[Desktop Entry]  
Version=1.0  
Type=Application  
Name=Netflix Chrome (Application).  
GenericName=Netflix Browser  
Categories=Network;WebBrowser;  
Exec=/opt/google/chrome-unstable/chrome --user-data-dir=/home/USER/.config/google-chrome-netflix --profile-directory=Netflix --class=google-chrome-netflix --app-id=mhmidglabaofnaganlmeicdfedljohpf --flag-switches-begin --flag-switches-end %U  
Icon=chrome-mhmidglabaofnaganlmeicdfedljohpf-Netflix  
MimeType=text/html;text/xml;application/xhtml_xml;image/webp;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;  
StartupNotify=true  
Terminal=false  
StartupWMClass=crx_mhmidglabaofnaganlmeicdfedljohpf

No olvide ajustar la --user-data-dir=identificación de la extensión.

3 LucasRodrigues May 12 2020 at 10:14

Encontré la solución aquí:

https://blog.aldomann.com/jupyterlab-desktop-on-linux/

Cree jupyter-lab.desktop:

touch ~/.local/share/applications/jupyter-lab.desktop

Luego, escriba el código a continuación (Reemplace <user>por su nombre de usuario) y guárdelo:

[Desktop Entry]
Version=1.0
Type=Application
Name=JupyterLab
GenericName=JupyterLab
Comment=JupyterLab is the next-generation web-based user interface for Project Jupyter
Keywords=python;tensorflow;keras
Exec= bash -c "/usr/bin/env PATH=/home/<user>/.anaconda3/bin/:$PATH /home/<user>/.anaconda3/bin/jupyter lab"
StartupWMClass=Google-chrome
Categories=Development;Science;IDE;Qt;
Icon=jupyter-lab
Terminal=true
StartupNotify=true
MimeType=text/x-python3;text/x-python;application/x-ipynb+json;e

Reinicie la sección Gnome (presione Alt + F2 y dentro del cuadro de diálogo escriba 'r')

Cree un nuevo archivo .desktop en Google Chrome:

cp /usr/share/applications/google-chrome.desktop ~/.local/share/applications/google-chrome.desktop

Luego, si no existe una línea, StartupWMClass=google-chromeagregue esta línea; de lo contrario, reemplácela por el siguiente código:

StartupWMClass=google-chrome

Obtenga un icono para Jupyter. Por ejemplo:

https://blog.aldomann.com/assets/img/jupyter-lab.svg

y guárdelo en ~/.local/share/icons.