我有两个单独的 .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-terminal
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
并仅使用文件的名称.ext 作为图标将在 Unity 中产生最佳效果。
答案4
对于时间紧迫的人来说,一个非常简单但没有回报的方法是:
- 关闭所有打开的文件系统窗口。
- 从侧边栏解锁文件图标。
- 使用启动器,查找文件并再次打开窗口
- 将图标再次锁定到启动器。
这可能会或可能不会为您解决问题。我只是 Ubuntu 新手。希望这能有所帮助 :)