在 KDE Plasma 5 中,如何为 Gmail 等网络应用程序创建独立的启动器/桌面快捷方式?

joe*_*lom 7 gmail kde google-chrome chromium web-application

我每天使用两个操作系统:Ubuntu 15.04 与 Unity 桌面环境和 Manjaro 与 KDE-plasma-5 桌面。我花了很多时间在我的电子邮件上,让它像独立程序一样运行对我来说很方便,而不是铬中的选项卡。

在这两个系统上,我都可以通过“更多工具”下的设置菜单为 gmail 创建启动器。在 Ubuntu/Unity 上,我可以将这个启动器添加到面板中,它将作为一个独立的程序使用它自己的单独的图标和键盘快捷键。在 Manjaro/KDE 上,我的 gmail 快捷方式显示了一个唯一的图标,但是一旦程序启动,gmail 窗口就会被识别为一个 Chromium 窗口,它会与面板中现有的 Chromium 窗口合并而不是保留图标显示在快捷方式上。我还尝试使用命令行标志直接创建快捷方式,如这篇相当老的帖子中所述,但行为是相同的。

如何在 KDE 中模仿 Unity 行为?是否有可能让 webapp 像一个独立程序一样运行,或者它总是合并到任何现有的打开的 Chromium 窗口中?

sto*_*her 5

问题

导致此问题的问题是 KDE在不通过其 X11 窗口运行功能识别显示启动器的应用程序class,而 chrome 不会更改 X11 窗口class,而是将其保留为google-chrome并将其更改classname为唯一值。

解决方案

值得庆幸的是,可以强制 Gmail 窗口按照您想要的方式运行。

  1. 安装一个xdotool用你的包管理器调用的应用程序。
  2. 打开文件管理器并浏览到~.local/share/applications/.
  3. .desktop使用文本编辑器打开chrome 为您的 gmail web 应用程序创建的文件
  4. 注意 StartupWmClass 的值
  5. 将以下内容附加到 Exec 行:&&xdotool search --sync --classname <value> set_window --class <value>,替换<value>为 StartupWmClass 的值。

这是我以这种方式编辑的另一个 web 应用程序的示例:

[Desktop Entry]
Comment=
Exec=/opt/google/chrome/google-chrome --profile-directory=Default --app-id=hlomdbnjeagldabepchlcdhkaagfedim && xdotool search --sync --classname crx_hlomdbnjeagldabepchlcdhkaagfedim set_window --class crx_hlomdbnjeagldabepchlcdhkaagfedim
Icon=chrome-hlomdbnjeagldabepchlcdhkaagfedim-Default
Name=Outlook 365
NoDisplay=false
Path[$e]=
StartupNotify=true
StartupWMClass=crx_hlomdbnjeagldabepchlcdhkaagfedim
Terminal=0
TerminalOptions=
Type=Application
Version=1.0
X-KDE-SubstituteUID=false
X-KDE-Username=
Run Code Online (Sandbox Code Playgroud)

该更改会将 web 应用程序的窗口类更改为 KDE 所期望的。应用程序图标可能会短暂显示为普通的 chrome 图标,但一旦 xdotool 完成,它将很快被 .desktop 文件中设置的正确图标替换。