[[oktatas:linux:grafikus_felület|< Grafikus felület]] ====== Ablak távoli irányítása ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2017, 2018, 2019 * [[https://creativecommons.org/licenses/by-sa/4.0/|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 -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