MyTetra Share
Делитесь знаниями!
Linux: Как узнать ID окна по его заголовку (имени) в среде X11
Время создания: 09.08.2017 13:50
Раздел: Компьютер - Linux - Bash - Команды и скрипты
Запись: xintrea/mytetra_syncro/master/base/1502275838vjpfmrb42i/text.html на raw.github.com

Например, нам нужно узнать ID окна, чтобы сделать скриншот с помощью команды import.


Об окне мы знаем то, что оно имеет заголовок "TightVNC чего-то там".


Нужно узнать его ID.


Для этого можно воспользоваться командой:


$ xwininfo -tree -root | grep -v "has no name" | grep -v child


Parent window id: 0x0 (none)

0x180099a "lxterminal": ("lxterminal" "Lxterminal") 339x111+1+53 +1+53

0x18007b9 "lxterminal": () 10x10+-100+-100 +-100+-100

0x1800001 "lxterminal": ("lxterminal" "Lxterminal") 10x10+10+10 +10+10

0xe002cf "lxpanel": ("lxpanel" "Lxpanel") 328x208+211+935 +211+935

0xe002bd "lxpanel": ("lxpanel" "Lxpanel") 263x182+211+961 +211+961

0xe00297 "lxpanel": ("lxpanel" "Lxpanel") 285x78+211+889 +211+889

0xe00261 "lxpanel": ("lxpanel" "Lxpanel") 211x281+2+837 +2+837

0x1200032 "clipit": () 10x10+-100+-100 +-100+-100

0xe00022 "lxpanel": () 10x10+-100+-100 +-100+-100

0x1400001 "notification-daemon": ("notification-daemon" "Notification-daemon") 10x10+10+10 +10+10

0x1200001 "clipit": ("clipit" "Clipit") 10x10+10+10 +10+10

0xe00003 "lxpanel": () 10x10+-100+-100 +-100+-100

0xe00001 "lxpanel": ("lxpanel" "Lxpanel") 10x10+10+10 +10+10

0x1000001 "pcmanfm": ("pcmanfm" "Pcmanfm") 10x10+10+10 +10+10

0xa00001 "lxpolkit": ("lxpolkit" "Lxpolkit") 10x10+10+10 +10+10

0x600001 "lxsession": ("lxsession" "Lxsession") 10x10+10+10 +10+10

0xc0006f "Openbox": ("" (none)) 1x1+-100+-100 +-100+-100

0xe0001e "panel": ("panel" "lxpanel") 1920x26+0+0 +0+1117

0x1200003 "clipit": ("clipit" "Clipit") 24x24+0+0 +1753+1118

0x1800003 "smstep@terminator: ~/work/pic": ("lxterminal" "Lxterminal") 1920x1091+0+26 +0+26

0x1e00012 "TightVNC: pc1234": ("vncviewer" "Vncviewer") 1600x900+2+27 +160+136

0x1000003 "pcmanfm": ("pcmanfm" "Pcmanfm") 1920x1143+0+0 +0+0


Если эту команду еще загрепать, то можно найти строку описания окна TightVNC:


$ xwininfo -tree -root | grep -v "has no name" | grep -v child | grep TightVNC

0x1e00012 "TightVNC: pc1234": ("vncviewer" "Vncviewer") 1600x900+2+27 +160+136


Далее можно получить идентификатор путем удаления начальных пробелов (через sed) и получения первого поля (через cut):


$ xwininfo -tree -root | grep -v "has no name" | grep -v child | grep TightVNC | sed 's/^[ \t]*//' | cut -d' ' -f1

0x1e00012



Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования