Найти имя менеджера окон X - PullRequest
3 голосов
/ 17 апреля 2009

Как найти имя запущенного менеджера окон X Window из программы?

Если я запускаю другой оконный менеджер, когда он уже запущен, возникает ошибка, поэтому у другого оконного менеджера должен быть способ обнаружить первый.

Как это работает?

Ответы [ 3 ]

8 голосов
/ 12 июля 2009

В соответствии со спецификацией EWMH совместимый оконный менеджер установит для свойства _NET_SUPPORTING_WM_CHECK корневого окна идентификатор окна.

Если свойство _NET_SUPPORTING_WM_CHECK существует и содержит идентификатор существующего окна, тогда работает диспетчер окон, совместимый с ICCCM2.0. Если свойство существует, но не содержит идентификатор существующего окна, то совместимый с ICCCM2.0 оконный менеджер завершился без надлежащей очистки. Если свойство не существует, то не работает ни один диспетчер окон, совместимый с ICCCM2.0.

Это окно (не корневое окно, а окно, описанное свойством корневого окна) должно иметь свойство _NET_WM_NAME, которое вы ищете.

3 голосов
/ 03 августа 2012

Команда wmctrl может отображать информацию о многих EWMH / NetWM-совместимых оконных менеджерах, включая их имена:

$ wmctrl -m
Name: Compiz
...

Согласно его странице Википедии , в настоящий момент он работает со следующими оконными менеджерами (август 2012 г.):

  • черный ящик> = 0,70
  • IceWM
  • kwin (WM по умолчанию для KDE)
  • metacity (по умолчанию WM для GNOME)
  • openbox> = 3 (по умолчанию WM для Lubuntu)
  • 1021 * рыба-пила *
  • fvwm> = 2,5
  • Ваий
  • pekwm
  • просветление> = 0.16.6
  • xfce> = 4
  • fluxbox> = 0.9.6
  • спичечный
  • Window Maker> = 0,91
  • Compiz
  • удивительный
  • wmfs
1 голос
/ 17 апреля 2009

Вы можете найти «атом», в котором есть информация, но я не думаю, что есть 100% гарантия, что все оконные менеджеры используют один и тот же атом. Выполните «xlsatoms», чтобы вывести список атомов на вашем сервере, или «xprop» (и нажмите), чтобы увидеть свойства (включая атомы и их значения) определенного окна.

...