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

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

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

我正在运行带有统一界面的 Ubuntu 12.10。

答案1

我认为问题可能在于WM_CLASS(字符串)在 gnome-terminal 的窗口属性中

如果你有两个具有不同图标但运行 gnome-terminals 的桌面文件...你可以使用以下命令检查 WM_CLASS属性

  • xprop | grep WM_CLASS

然后点击窗口(使用十字光标)... 您的应用程序的结果应该是:

WM_CLASS(STRING) = “gnome-终端”,“Gnome-终端”

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


在 Gnome 终端中设置类别和名称

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

命令应该是:

  • gnome-terminal --disable-factory --class <appname> --name <appname>

这里有一个运行 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 终端),并将 gnome-terminal 桌面图标锁定到 Unity Launcher。

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

在此处输入图片描述

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

在此处输入图片描述

你可以看到有 3 个终端正在运行(带有自己的图标)

在此处输入图片描述

这里是 term-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'

笔记:请根据您的需要更改这些示例。

希望能帮助到你。

答案2

它们以这种方式分组在一起以使您的启动器更干净(想象一下,如果您打开了十个窗口)。如果您单击该图标一次,焦点将转到最后获得焦点的窗口之一。如果您再次单击该图标,它将展开桌面上的所有窗口并让您选择所需的窗口 - 如下所示:

传播

当你习惯了它之后它真的非常方便。

答案3

可能是因为你使用了gnome-terminalExec。通过文档,您可以寻址您的可执行文件,然后添加一行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并仅使用文件的名称.ext 作为图标将在 Unity 中产生最佳效果。

答案4

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

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

这可能会或可能不会为您解决问题。我只是 Ubuntu 新手。希望这能有所帮助 :)

相关内容