2017 m. sausio 10 d., antradienis

xdotool pavyzdžiai

Su xdotool programa galima automatizuoti pelytės valdymą.

Mygtukų reikšmes galime rasti su xev komanda.

Gauname pelytės koordinates:

$ xdotool getmouselocation
x:969 y:0 screen:0 window:67108881 

Pelytė buvo ekrano viršuje, maždaug ties viduru. XXX - nusako verikalės koordinates, kai - YYY horizontalės. Viršuje, kairiame kampe, koordinatės yra: x:0 y:0.

Žemiau esančiame pavyzdyje, pelytė bus nuspaudžiama, kas 5 sekundes.

#!/bin/bash
    TEMPFILE=$(mktemp);
    xprop > $TEMPFILE;
    X=$(awk '{print $1}' $TEMPFILE | grep -o [[:digit:]]*)
    Y=$(awk '{print $2}' $TEMPFILE | grep -o [[:digit:]]*)
   
    while [ 1 ]; do
    xdotool mousemove $X $Y click 1 &
    sleep 5
    
    rm -f $TEMPFILE
done

Paprastas klavišų siuntimas:

$ xdotool key  Control_L+Shift_L+KP_0 #Siunčiame Ctrl+Shift+0 klavišų kombinacija
$ xdotool key Control_L+KP_Multiply # Ctrl+*

Lango aktyvavimas:

WID=`xdotool search "Mozilla Firefox" | head -1` #Randam programos langą ir išsaugom lango id

Langų informacija:

Gaunam langų id, ir peržiūrim langų pavadinimus
$ xdotool search --class "vlc" | while read; do xdotool getwindowname $REPLY; done
vlc
vlc
vlc
Ashton Lane - One Kiss Later [M2y] - VLC media player


Randame tik VLC media player id:

$ xdotool search --class "vlc" | while read; do name=$(xdotool getwindowname $REPLY); [[ $name == *"VLC media player" ]] && echo $name ; done
#!/bin/bash

pids=$(xdotool search --class "vlc")
for pid in $pids; do
    name=$(xdotool getwindowname $pid)
    if [[ $name == *"VLC media player" ]]; then
        #Do what you want, $pid is your sought for PID,
        #matching both class gvim and TODO in title
  echo $name
    fi
done

Viena eilute:
$ xdotool search --class "vlc" | while read; do name=$(xdotool getwindowname $REPLY); [[ $name == *"VLC media player" ]] && echo $name ; done

Arba galime rasti pažymėjus langą:

WINDOWID=$(xdotool selectwindow) #Randam lango id nurodžius langą pelyte

$ xdotool windowactivate --sync $WID #Aktyvuojam langą
$ xdotool key --clearmodifiers ctrl+l  #Aktyvuojam įvedimo laukelį

Lango paieška ir komandos išsiuntimą, galime atlikti viena komanda:

$ xdotool search "Mozilla Firefox" windowactivate --sync key --clearmodifiers ctrl+l # Siunčiam Ctrl+l klavišą Mozilai

$ xdotool search "VLC media player" windowactivate --sync key --clearmodifiers n # Siunčiam n mygtuką vlc grotuvui

Paleidžiam chrome naršyklę ir įvedam url:

/bin/bash -c "chromium-browser&sleep 2&&xdotool type 'technologijos.lt'&&xdotool key Return"

Daugiau: