< Grafikus felület

Ablak távoli irányítása

Szerző: Sallai András

Copyright © Sallai András, 2017, 2018, 2019

CC Attribution-Share Alike 4.0 International

Web: http://szit.hu

Telepítés

sudo apt install wmctrl sudo apt install xdotool

Azonosító kiderítése

Kiderítjük az irányítandó ablak azonosító számát:

xwininfo

Az indítás után hasonló kimenetet látunk:

$ xwininfo
xwininfo: Please select the window about which you
would like information by clicking the
mouse in that window.

Most kattintunk a vezérelni kívánt ablakra. A kimenet ehhez hasonló lesz:

xwininfo: Window id: 0x4c8ce2a "051_Linux_GUI_beallitasa.odp - LibreOffice Impress"
Absolute upper-left X: 314
Absolute upper-left Y: 87
Relative upper-left X: 2
Relative upper-left Y: 23
Width: 1291
Height: 905
Depth: 24
Visual: 0x21
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x20 (installed)
Bit Gravity State: ForgetGravity
Window Gravity State: StaticGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +314+87 -1339+87 -1339-88 +314-88
-geometry 1291x905+314+87

Nekünk ebből az ablak azonosító szükséges.

xdotool key --window 0x4c8ce2a "F1"

Azonosítás kattintás nélkül

Ablakok lekérdezése:

wmctrl -l
wmctrl -lx

Konzolról:

export DISPLAY=:0 ; wmctrl -l

Ablak vezérlése

A kimenetből kiderül, hogy a vezérelni kívánt ablak azonosítója:

0x4200007

Egy ablak aktiválása:

wmctrl -i -a 0x0120002

Ablak rejtése:

wmctrl -i -r 0x3400001 -b toggle,shaded

Ablak mindig alul:

wmctrl -i -r 0x3400001 -b toggle,below

Ablak maximumra:

wmctrl -i -r 0x3400001 -b toggle,maximized_vert,maximized_horz

A vert és horz sorrendje nem mindegy.

Maximalizálás megszüntetése:

wmctrl -i -r 0x3400001 -b remove,maximized_vert,maximized_horz

above - mindig felül fullscreen - teljesképernyő below - mindig alul

A következő értékek állíthatók be:

modal

sticky

maximized_vert

maximized_horz

shaded

skip_taskbar

skip_pager

hidden

fullscreen

above

below

xdotool windowactivate 0x4200007

Ablak legyen fókuszban (ettől nem kerül felülre):

xdotool windowfocus 0x4200007

Ablak aktiválása (előtérbe és fókuszt is kap):

xdotool windowactivate 0x4200007

Maximumra váltás:

wmctrl -i -r 0x4200007 -b add,maximized_vert,maximized_horz

Méret és hely

Méret és hely változtatás:

Szintaxis:

xdotool windowmove $WINDOW_ID $X $Y

Példa:

xdotool windowsize 0x4200007 800 600
xdotool windowmove 0x4200007 0 1080

Asztal vezérlése

Hány asztal legyen:

wmctrl -n 2

Minden ablak minimumra:

wmctrl -k on

Az asztalnak billentyű, menü:

xdotool key alt+F1

Billentyűnyomás

Escape nem működik lxterminal ablakban, helyette a kódja: 0xff1b. De például tmuxban már működik.

A kódok listája:

https://gitlab.com/cunidev/gestures/wikis/xdotool-list-of-key-codes

Aktív ablak minimalizálása:

xdotool getactivewindow windowminimize

Ablak címének megváltoztatása:

xdotool set_window --name valami 0x3400001

Ezek után felhasználhatjuk, például:

wmctrl -r gc -b toggle,shaded
xdotool search --name gc windowactivate
xdotool search --name gc windowminimize

Map:

xdotool windowunmap 0x03400001
xdotool windowmap 0x03400001

Név alapján:

xdotool search --name telegram windowmap

A feladatlistán ne látszódjon az ablak:

xprop -id 0x03400001 -f _NET_WM_STATE 32a \
-set _NET_WM_STATE _NET_WM_STATE_SKIP_TASKBAR

xprop -name <név> -f _NET_WM_STATE 32a \
-set _NET_WM_STATE _NET_WM_STATE_SKIP_TASKBAR

Ajánlott még: xbindkeys (apt install xbindkeys; man xbindkeys)

Böngésző kezelése

Böngésző aktiválása, új fül nyitása, cím beírása, és Enter nyomása.

Keressük ki a böngészőnk azonosítóját:

wmctrl -l

Művelet:

xdotool windowactivate 0x03400001
xdotool key ctrl+t
xdotool type szit.hu
xdotool key 0xff0d

Az xdotool key 0xff0d helyett írhatunk xdotool key Enter parancsort is. A 0xff0d kód csak LXTerminalban szükséges. Például tmuxban működik az Enter is.

Függelék

Kijelző

export DISPLAY=:0.0

DISPLAY=:0.1 wmctrl -l