Что представляет собой поле StartupWMClass файла.desktop?

Я работаю над этим уже существующим файлом .desktop, и у меня есть сомнения:

Содержимое файла:

[Desktop Entry]
#Icon=connect-data-space
Icon=XCloud
Categories=Utility;
Type=Application
#Exec=/usr/share/ConnectDataSpace/appl/launcher.sh
Exec=/usr/share/XCloud/appl/launcher.sh
Name[en_US]=Connect Data Space
#Name=Connect Data Space
Name=XCloud
Comment[en_US]=
Comment=
StartupNotify=true
Terminal=false
OnlyShowIn=GNOME;Unity;
StartupWMClass=ConnectDataSpace
Actions=CheckUpgrade

[Desktop Action CheckUpgrade]
Name=Verifica Aggiornamenti
#Exec=java -jar /usr/share/ConnectDataSpace/appl/lib/shellExtBridge.jar -checkupgrade
Exec=java -jar /usr/share/XCloud/appl/lib/shellExtBridge.jar -checkupgrade
OnlyShowIn=GNOME;Unity;

Что именно представляет поле StartupWMClass этого файла?

Tnx

Andrea

3 ответа

Решение

Современные среды рабочего стола Linux (Gnome 3, Ubuntu Unity, Docky) используют WMClass свойство связывать окна с владельцем приложения. Многие Java-приложения имеют проблему, когда окна, созданные приложением, не связаны с ярлыком, используемым для запуска приложения (поэтому док-станция содержит несколько копий одного и того же значка).

Так называется поле StartupWMClass является строкой, которая определяет, в каком классе приложение при запуске запускается в Unity Launcher.

Вы можете узнать, какие WM_CLASS ваше окно имеет, когда вы печатаете в терминале:

xprop WM_CLASS

а затем нажмите на окно. В случае терминала gnome вывод выглядит следующим образом:

WM_CLASS(STRING) = "gnome-terminal", "Gnome-terminal"

Так что все окна с WM_CLASS "Гном-терминал" и "Гном-терминал" сгруппированы вместе.

В более новых системах с Wayland,xpropинструмент больше не будет работать.

Если вы используете GNOME Shell, вы можете использовать встроенный инструмент Looking Glass.

Нажмите Alt+ F2, введитеlgи нажмите Enter. В верхней правой панели выберите «Windows».

WM_CLASS будет отображаться подwmclassключ.

Например:

Кстати, обратите внимание, что под Kde/Kwin и wayland xprop не будет работать.

Вам придется использоватьqdbus org.kde.KWin /KWin queryWindowInfoи нажмите на окно, которое вы хотите наблюдать.

WMClass будет в атрибуте resourceClass.

Другие вопросы по тегам