避免 .desktop 终端启动器与(gnome 和其他)窗口管理器中的其他终端窗口位于同一组中

避免 .desktop 终端启动器与(gnome 和其他)窗口管理器中的其他终端窗口位于同一组中

我制作了一个自定义 .desktop 文件并将其放入 .local/share/applications 中。现在我可以从桌面菜单(如 gnome shell)运行它。内容是:

[Desktop Entry]
Name=Todovim
GenericName=Todovim
Comment=Open my todo file in vim with vim-todo plugin
Encoding=UTF-8
Terminal=true
StartupNotify=false
StartupWMClass=todovim
Categories=Utility;Terminal
Keywords=Todo;Terminal
Exec=xfce4-terminal -e "tmux new-session 'zsh -ic todoedit ; read'" --hide-menubar --hide-toolbar --hide-scrollbar --maximize
Type=Application
Icon=trine

但是当启动应用程序时,它会被分组到其他终端窗口——我想将它与那些终端窗口分开。如何避免分组并将其保留在自己单独的应用程序组中?

答案1

您可以为当前用户运行,这将启动一个新实例xfce4-terminalsudo

sudo -E -u current-user xfce4-terminal

将该Exec行替换为以下内容(替换current-user为您的用户名)

Exec=sudo -E -u current-user xfce4-terminal -e "tmux new-session 'zsh -ic todoedit ; read'" --hide-menubar --hide-toolbar --hide-scrollbar --maximize

-E如果您不想使用当前的环境变量,也可以使用不带选项的 sudo 。

答案2

据我了解,该StartupWMClass设置不会配置启动应用程序的窗口类。

相反,它告诉桌面环境会发生什么:“一旦窗口出现窗口类出现,则可以认为该项启动完成,并结束其启动通知。”

但是,由于您禁用了启动通知,因此该StartupWMClass设置将根本不起作用。

相反,您应该—window在命令行中添加一个选项xfce4-terminal来指定您希望此命令在单独的窗口中运行:

Exec=xfce4-terminal --window -e "tmux new-session 'zsh -ic todoedit ; read'" --hide-menubar --hide-toolbar --hide-scrollbar --maximize

答案3

抱歉,我无法重现任何答案。我找到了一种让它与终端模拟器一起工作的方法阿拉克里蒂

它有一个选项可以设置窗口类别--class。如果将其设置为与 .desktop 文件的 StartupWMClass 相同的类,它将生成一个单独的图标(至少在 Wayland 上的 Gnome 中)。现在启动器文件如下所示:

[Desktop Entry]
Name=Todovim
GenericName=Todovim
Encoding=UTF-8
Categories=Utility
Keywords=Todo
Terminal=false
StartupNotify=false
StartupWMClass=Todovim
Exec=alacritty --class Todovim -e zsh -ic todoedit
Type=Application
Icon=trine
Name[de_DE.UTF-8]=todovim

我还将终端更改为 false,因为它将启动第二个终端窗口。

相关内容