为什么两个单独的面板图标在打开时会在同一图标下进行分组

我有两个单独的.desktop文件锁定到面板。 它们都打开终端窗口并运行一系列命令(带有用户输入)。 麻烦的是,虽然已经打开了一个,打开另一个会导致它们在同一个(最先打开的一个)下聚集在一起。 这有点麻烦,因为..如果我通过ctrl + alt + t快捷方式打开一个终端窗口,而不是在面板中打开一个新图标,它会被添加到已经打开的.desktop文件中!

我正在使用统一界面运行Ubuntu 12.10。

我认为问题可能出在gnome-terminal窗口属性中的WM_CLASS(STRING)

如果您有两个具有不同图标但运行gnome-terminal的桌面文件…您可以使用xprop命令检查WM_CLASS

  • xprop | grep WM_CLASS

然后单击窗口(使用十字光标) …并且应用程序的结果应为:

WM_CLASS(STRING)=“gnome-terminal”,“Gnome-terminal”

在我看来,由于Windows具有相同的WM_CLASS,它们将在Unity Launcher中组合在一起。


在Gnome-Terminal中设置类和名称

要避免此问题,您可以尝试为每个桌面文件设置不同的WM_CLASS字符串。

命令应该是:

  • gnome-terminal --disable-factory --class --name

这里有一个运行gnome-terminal和执行一个小脚本的例子。

  • gnome-terminal --disable-factory --class term-red --name term-red --title Term-Red --window-with-profile=red -e '/home/virtual/Desktop/test1.sh'

带有2个桌面文件的示例。

我创建了2个桌面文件,它们将运行脚本(使用gnome-terminal) ,并且gnome-terminal桌面图标被锁定到Unity Launcher。

1)gnome-terminal.desktop
2)term-green.desktop
3)term-red.desktop

在此处输入图像描述

当我单击3个桌面文件时,它们不会分组在同一个图标下。

在此处输入图像描述

如您所见,3个终端正在运行(带有自己的图标)

在此处输入图像描述

在这里,您可以获得术语-red.desktop的内容。

在此处输入图像描述

添加.desktop文件的重要键是:

  • Exec=gnome-terminal --disable-factory --class term-red --name term-red --title Term-Red --window-with-profile=red -e '/home/virtual/Desktop/test1.sh'
  • StartupWMClass=term-red
  • StartupNotify=true

在这里您可以获得有关桌面条目规范的信


另一个选择是运行xterm而不是gnome-terminal。
xterm将接受选项类和名称。

  • Exec=uxterm -class term-red -name term-red -T Term-Red -e '/home/virtual/Desktop/test1.sh'

注意:请根据您的需要更改这些示例。

希望能帮助到你。

它们组合在一起,以保持您的发射器清洁(想象一下,如果您打开十个窗口)。 如果单击该图标一次,焦点将转到其中一个最后具有焦点的窗口。 如果再次单击该图标,它应该将所有这些窗口分散到桌面上,然后让您选择所需的窗口 – 如下所示:

传播

当你习惯它时,它真的很方便。

可能那是因为你使用gnome-terminal for Exec。 通过文档 ,您可以解决您的可执行文件,然后添加一行Terminal=true以在终端中执行它。

 [Desktop Entry] Version=0 Name=Your app Comment=An app for doing something Exec=/complete/path/to/your/file Icon=gnome-terminal Terminal=true Type=Application Categories=Application; 

这是一个屏幕截图,显示了一个测试应用程序的结果,其图标与终端相同:

使用终端图标测试应用程序

由于Exec不同,因此窗口不会分组。

您还可以使用自己想要的图标来创建不同的应用。 将SVG或PNG文件移动到~/.icons并仅使用Icon的文件name.ext将在Unity中获得最佳结果。

对于那些时间紧迫的人来说,一种非常简单但没有回报的方法是:

  1. 关闭所有已打开的文件系统窗口。
  2. 从侧边栏解锁文件图标。
  3. 使用启动器,查找文件并再次打开一个窗口
  4. 再次将图标锁定到启动器。

这可能会也可能不会为您解决。 我只是ubuntu的新手。 希望这可以帮助 :)