桌面文件图标劫持每个新打开的终端窗口

桌面文件图标劫持每个新打开的终端窗口

我有一个运行以下脚本的桌面文件:

[Desktop Entry]
Type=Application
Terminal=true
Name=MYAPP
Icon=/usr/local/myAppDir/AppIcon.png
Exec=/usr/local/myAppDir/myApp

它确实有效,这不是问题所在。它会打开一个新终端,因为 myApp 需要终端在后台运行。但每次我打开新终端时,它都会被 myApp 图标劫持。我的意思是,在侧栏中,我点击终端图标 3 次后,似乎打开了 3 个 myApp 窗口。点击终端图标时,它会继续打开新终端,而不是打开最近的终端。这可以改变吗?

答案1

原则上,同一个应用程序的应用程序窗口只能分组在一个应用程序图标中,因此所有 gnome-terminal 窗口都分组在一个图标中。通常,这可以提高启动器的一致性。

副作用是,如果您的应用程序从终端运行.desktop file,并且终端窗口出现在应用程序图标下,则应用程序运行时打开的所有终端窗口都将分组在应用程序的同一图标下,直到您关闭应用程序。

除非...

StartupWMClass=您在应用程序中添加了一行无意义的代码.desktop file

StartupWMClass=Monkey

然后您的应用程序将出现在终端图标下。新的终端窗口也将出现。

笔记

仅当您在应用程序行中运行的命令 Exec=主要的文件的命令.desktop。您添加到现有启动器的可能快捷方式不会发生这种情况。

由于它似乎是一个仅限终端的脚本,因此另一个可能更简洁的解决方案是将该脚本作为快捷方式添加到您现有的gnome-terminal启动器(或任何其他合适的图标)。在这种情况下,您必须替换以下行(在 gnome-terminal.desktop 文件的本地副本中):

Actions=New

经过:

Actions=New;Myapp;

并在文件底部添加:

[Desktop Action MyApp]
Name=MyApp
Exec=gnome-terminal -x bash -c "/usr/local/myAppDir/myApp"
OnlyShowIn=Unity;

相关内容