为StartupWMClass设置多个值(以在Unity中的同一启动器下分组)
这是我尚未找到解决方案的通用问题的特定示例。 我有一个程序(Android虚拟设备管理器)可以从自身内部启动“子程序”(即仿真器或虚拟设备)(也可以从其他位置启动)。我希望将这些程序的任何EITHER实例归入同一Unity图标下。 我已经创建了一个.desktop文件来尝试完成此任务,但不完全知道该怎么做。桌面文件如下: #!/usr/bin/env xdg-open [Desktop Entry] Version=1.0 Type=Application Terminal=false Name=Android Virtual Device Icon=/home/ben/.icons/android.svg Exec=/home/ben/usr/bin/android avd StartupWMClass=Android Virtual Device Manager 据我了解,这StartupWMClass是我需要正确设置以实现此目标的条件。我已经xprop WM_CLASS在复制窗口上使用了两个类名(“ Android虚拟设备管理器”和“ emulator64-arm”)。两者都可以单独工作(无论以什么方式启动,启动器图标都正确地附加到了程序上),但是我无法使它同时适用于两者。 我假设我某种程度上需要为其设置两个值,StartupWMClass但不能正确执行(或知道它是否是有效的操作)。我已经尝试过,像环境变量一样用冒号分隔,用逗号分隔,用引号引起来,等等,但是我在官方文档中找不到任何提示。 有什么建议么? 编辑: 另一个更有趣,但可能更可识别的示例是Matlab。我正在运行2013a,初始显示的初始屏幕和程序具有完全不同的WM_CLASS值。这意味着,当我单击其中的启动器StartupWMClass=com-mathworks-util-PostVMInit时,启动屏幕将显示一个不同的Unity图标(默认为“未知”),而其余的图标将显示在启动器下方。 通过使用xprop WMCLASS并首先单击启动屏幕,然后通过活动Matlab会话进行重复,我得到以下终端输出: ben@ben-OptiPlex-9010:~$ xprop WM_CLASS WM_CLASS(STRING) = "MATLAB", "MATLAB" ben@ben-OptiPlex-9010:~$ xprop WM_CLASS WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "com-mathworks-util-PostVMInit" 如果我可以按照以下方式指定内容: StartupWMClass=com-mathworks-util-PostVMInit&&MATLAB 那会完美地工作(因为两者都是分开工作的),但是我什至不知道语法,即使它存在。我只知道到目前为止我还没有尝试过任何方法。 无论哪种方式的任何帮助或最终答案都将是很好的,因为我认为这是运行良好的台式机的相当基本的要素。