为 ZSH 制作 .destop,以便它启动 zsh 并且保持不变,而无需传输到 gnome-terminal 的 .desktop?

为 ZSH 制作 .destop,以便它启动 zsh 并且保持不变,而无需传输到 gnome-terminal 的 .desktop?

我的zsh.desktop放置/home/user/.local/share/applications行为如下:

当我双击并执行时,它可以正常打开,但是几秒钟后,我为启动器设置的自定义图标从启动器中消失,而是出现位于的zsh.desktop默认图标,并且如果之前打开了窗口,它们就会合并。gnome-terminal.desktop/usr/share/applicationsgnome-terminal

zsh.desktop内容 :

[Desktop Entry]
X-AppInstall-Package=gnome-terminal-y
X-AppInstall-Section=main

Name=ZSH-Terminal
Comment=Use zsh in the command line
TryExec=zsh
Exec=zsh
Terminal=true
Icon=/home/lucifer/.oh-my-zsh/zsh.png
Type=Application
StartupNotify=true
X-GNOME-SingleWindow=true
OnlyShowIn=GNOME;Unity;
Actions=New

Name[en_US]=ZSH-Terminal

[Desktop Action New]
Name=New Terminal
Exec=/usr/bin/zsh

编辑

如果firefox stablefirefox nightly并排安装,您会看到,当您执行其中一个时,它会自动转移到图标中firefox,这会导致nightly和都出现一个通用图标stable,这并不好。

类似的事情也发生在两个不同的.desktop

我如何解决这个问题:

没有可行的解决方案来分离这两者,我所做的是Tilixhttps://gnunn1.github.io/tilix-web/(以前Terminix)它作为一个单独的进程(PID)运行,gnome-terminal然后zsh从那里运行。

答案1

Exec用以下内容替换您的行:

Exec=gnome-terminal --class=zsh -e zsh

使用 :

Terminal=false

并添加以下行:

StartupWMClass=zsh

该文件看起来应该像这样:

[Desktop Entry]
X-AppInstall-Package=gnome-terminal-y
X-AppInstall-Section=main

Name=ZSH-Terminal
Comment=Use zsh in the command line
TryExec=zsh
Exec=gnome-terminal --class=zsh -e zsh
Terminal=false
Icon=/home/lucifer/.oh-my-zsh/zsh.png
Type=Application
StartupNotify=true
X-GNOME-SingleWindow=true
OnlyShowIn=GNOME;Unity;
Actions=New
StartupWMClass=zsh

Name[en_US]=ZSH-Terminal

[Desktop Action New]
Name=New Terminal
Exec=gnome-terminal --class=zsh -e zsh

答案2

最好的办法是运行一个单独的终端仿真器(Tilix),因为它将使用一个单独的PID进程而不是一个进程gnome-terminal,然后zsh从那里使用,你就会得到一个完全独立的适用于的图标zsh

Tilix https://gnunn1.github.io/tilix-web/

相关内容