如何强制 Chrome 从 .desktop 文件作为新应用程序打开

如何强制 Chrome 从 .desktop 文件作为新应用程序打开

Google Chrome 有一个选项,可以将网页作为窗口化的“Chrome 应用程序”启动,当与 Gnome 桌面一起使用时,将创建一个特殊的 .desktop 文件,该文件可用于以独立模式运行 Chrome,其自己的图标显示在 dash/dock 和窗口切换器中。

此模式的问题在于 Chrome 会尝试模仿 GTK 主题,导致窗口标题非常丑陋。它还会占用不必要的空间,在窗口顶部显示地址栏和其他控件。使用不安全的连接时尤其如此,而这在访问本地托管的应用程序时很常见。

另一种方法是使用--app=http://example.com选项启动 Chrome,这样可以获得更好的体验。本问题的末尾对两种模式的外观进行了比较。

我可以创建一个 .desktop 文件来使用--app我指定的选项和图标启动 Chrome,但这会导致新窗口与其他 Chrome 实例分组,它们都在 dash/dock 和窗口切换器中共享相同的通用 Chrome 图标条目。

Chrome 或 Gnome 中是否有一个选项可以强制将 .desktop 文件生成的窗口作为完全独立的应用程序运行?

Google Chrome 应用程序: Chrome 应用

Google Chrome 带有--app以下选项: Chrome 带有 --app 选项

答案1

我在这里找到了解决方案:

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

创建 jupyter-lab.desktop:

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

然后写入下面的代码(替换<user>为您的用户名)并保存:

[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

重新启动 Gnome 部分(按 Alt+F2 并在对话框中写入“r”)

为 Google Chrome 创建一个新的 .desktop 文件:

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

然后,如果不存在则StartupWMClass=google-chrome添加此行,否则用以下代码替换它:

StartupWMClass=google-chrome

获取 Jupyter 的图标。例如:

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

并将其保存在~/.local/share/icons

答案2

使用应用化创建 chrome 应用程序。 创建扩展

将您的扩展程序放入 chrome://extensions Chrome 扩展程序

.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

不要忘记调整--user-data-dir=扩展ID。

相关内容