我制作了一个自定义 .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-terminal
。sudo
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,因为它将启动第二个终端窗口。