forked from eyedeekay/conky-clicky
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ccaction.sh
executable file
·71 lines (57 loc) · 2.63 KB
/
ccaction.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/bin/bash
CONFIG_DIR=~/.ConkyClicky/confs
# Get mouse location and set its coordinates to variables X and Y
##################################################################
read X Y screen window <<< `xdotool getmouselocation|sed 's/x:\(.*\) y:\(.*\) screen:\(.*\) window:\(.*\)/\1 \2 \3 \4/'`
#echo $X
#echo $Y
#echo $screen
#echo $window
windowname=$(xdotool getwindowname $window)
echo; echo " click!"
# Kursoriaus koordinatės lange $windowname: $XX ir $YY
unset x y w h
eval $(xwininfo -name $windowname |
sed -n -e "s/^ \+Absolute upper-left X: \+\([0-9]\+\).*/x=\1/p" \
-e "s/^ \+Absolute upper-left Y: \+\([0-9]\+\).*/y=\1/p" \
-e "s/^ \+Width: \+\([0-9]\+\).*/w=\1/p" \
-e "s/^ \+Height: \+\([0-9]\+\).*/h=\1/p" )
# echo "$x $y $w $h"
XX=$((X - x))
YY=$((Y - y))
echo Kursoriaus koordinatės ekrane \(x,y\): \($X,$Y\)
echo Kursoriaus koordinatės lange \"$windowname\" \(x,y\): \($XX,$YY\)
echo
##################################################################
############# Buttons ############################################
cd $CONFIG_DIR
# Paimami ir suskaičiuojami visi mygtukai su jų duomenimis iš konfig'o, kurio pavadinimas atitinka paspausto lango pavadinimą
count=`grep ^BUTTON_ $windowname | wc -l`
# kiekvieno mygtuko parametrai išrūšiuojami, priskiriami kintamiesiems ir sulyginami su kursoriaus koord.:
while [ $count -gt 0 ]; do
array=$(cat $windowname|grep BUTTON_$count)
IFS="\"" # atskirsime paleistiną komandą nuo mygtuko parametrų
cnt=0 # pagr. skaitliukas
for var in $array; do # tikrinami mygtuko parametrai ir leistina komanda:
if [ $cnt == 1 ]; then # paima antrąjį mygtuko configūrac. elementą (leistiną komandą)
komanda=$var
echo komanda yra: $komanda; echo
if [ "$XX" -ge "$button_xL" -a "$XX" -le "$button_xR" -a "$YY" -ge "$button_yT" -a "$YY" -le "$button_yB" ] ; then # sulygina mygtuko ir kursoriaus koord. Jei atitinka, paleidžia komandą
echo vykdoma komanda
eval "$komanda"
fi
cnt=$(($cnt - 2)) # atstatomas skaitliukas
else kintamieji=$var; # Jei skaitliukas nepersuktas, paima pirmąjį mygtuko konfigūrac. elementą (parametrus). Juos išskaido, priskiria kintamiesiems. Šie bus (arba ne) panaudoti kito ciklo metu, kai paimsime leistiną komandą ir sutikrinsime koordinates.
echo kintamieji: $kintamieji
oldIFS=$IFS
IFS=" "
read buttonNo buttonName button_xL button_xR button_yT button_yB <<< $kintamieji
IFS=$oldIFS
echo priskirtieji kintamieji: $buttonNo $buttonName $button_xL $button_xR $button_yT $button_yB
fi
cnt=$(($cnt + 1))
done
count=$(($count - 1))
done
: <<'comment-block'
comment-block