francisco@Ubuntu:~$ wmctrl -l
0x02600006 0 Ubuntu Área de trabalho
0x03c00002 0 Ubuntu XdndCollectionWindowImp
0x03c00005 0 Ubuntu unity-launcher
0x03c00008 0 Ubuntu unity-panel
0x03c0000b 0 Ubuntu unity-dash
0x03c0000c 0 Ubuntu Hud
0x046000b3 0 Ubuntu How to make a window aways on top? - Stack Overflow - Mozilla Firefox
0x0520000b 0 N/A Qt Creator
0x05002396 0 Ubuntu francisco@Ubuntu: ~
0x0540000b 0 N/A backlight
Для окон, в которых столбец с именем машины указан как N/A
, я не могу отправить wmctrl
команды, например wmctrl -r "window name" -b add,above
. Зачем? (также, я не знаю, почему эти окна отличаются в отношении столбца с именем машины ...)
Моим первоначальным намерением было отправить такую команду в окно backlight
, приложение Qt без рамки. Использование системного меню окна и проверка «Всегда сверху» работает для окна, хотя. Мне просто нравится программный способ сделать то же самое.
Это определенно ошибка в wmctrl
.
после поиска кода wmctrl кажется, что ошибка заключается в переводе строк с именами окон в соответствующие идентификаторы окон (или XID). поэтому wmctrl -r "window name" -b add,above
не является надежным.
в качестве обходного пути, используйте вместо этого XID, то есть wmctrl -i -r window_id -b add,above
. в вашем случае wmctrl -i -r 0x0520000b -b add,above
должен работать.
Большинство средств управления окнами реализованы в виде свойств X window. Вы можете просмотреть все свойства окна командой -- xprop
.
ПРИМЕЧАНИЕ.
Окна, в которых столбец с именем компьютера указан как N / A. свойство имени машины - WM_CLIENT_MACHINE
. это редко используется. и некоторые наборы инструментов GUI могут не реализовывать их.
Вы можете просмотреть свойство имени машины окна, выполнив следующую командную строку и щелкнув окно
shell> xprop | grep MACHINE
Что касается Always On Top, это еще одно значение свойства _NET_WM_STATE_ABOVE
.
чтобы проверить это самостоятельно, запустите следующую командную строку и щелкните окно
shell> xprop | grep _NET_WM_STATE