par exemple, si tu obtient
Width: 120
Height: 60
le script sera
--[[
!!! Nécessite l’installation de xdotool !!!
le conky appelant doit avoir sa propre fenêtre et un nom, par exemple
own_window_title Meteo
own_window yes
Dans le conky il faut ajouter :
Avant TEXT
lua_load "Votre chemin"/Clic_info.lua
Après TEXT
${lua click}
Pour obtenir la position de la souris dans le script lié au clic utiliser
posx et posy
Pour ajouter des données récupérées via conky dans la commande à exécuter indiquer dans la ligne de commande arg(x), arg1 sera remplacer par le resultat
de arg1, vous disposez de 5 arguments
Les commandes peuvent êtres exécutées par conky où directement par le système
le nom de la fenêtre conky doit être renseigné ci dessous
]]--
local Fenetre="Gmail"
local Bouton={
{
Posx=0,--position haute sur l'axe horizontale de la zone de clic
Posy=0,--position haute sur l'axe verticale de la zone de clic
Lageur=120,--Largeur de la zone de clic
Hauteur=60,--Hauteur de la zone de clic
Commande_Os='exec firefox https://mail.google.com/mail/?shva=1#inbox &',--Commande exécutée par le système
Commande_Conky="",--Commande exécutée par conky
arg1="",--argument 1
arg2="",--argument 2
arg3="",--argument 3
arg4="",--argument 4
arg5="",--argument 5
},
}
local start=1
local abstlx, abstly
function conky_click()
local mousex, mousey, localx, localy, arg1, arg2, arg3, arg4, arg5
if conky_window == nil then return end
local updates=tonumber(conky_parse('${updates}'))
if updates>2 then
localx,localy=clickfunction()
for i in pairs(Bouton) do
if localx>=Bouton[i].Posx and localx<=Bouton[i].Posx+Bouton[i].Lageur and localy>=Bouton[i].Posy and localy<=Bouton[i].Posy+Bouton[i].Hauteur then
mousex=Bouton[i].Posx+abstlx
mousey=Bouton[i].Posy+Bouton[i].Hauteur+abstly
if Bouton[i].arg1 ~= "" then arg1=conky_parse( "${"..Bouton[i].arg1.."}" ) else arg1=" " end
if Bouton[i].arg2 ~= "" then arg2=conky_parse( "${"..Bouton[i].arg2.."}" ) else arg2=" " end
if Bouton[i].arg3 ~= "" then arg3=conky_parse( "${"..Bouton[i].arg3.."}" ) else arg3=" " end
if Bouton[i].arg4 ~= "" then arg4=conky_parse( "${"..Bouton[i].arg4.."}" ) else arg4=" " end
if Bouton[i].arg5 ~= "" then arg5=conky_parse( "${"..Bouton[i].arg5.."}" ) else arg5=" " end
if Bouton[i].Commande_Os ~= "" then
Bouton[i].Commande_Os=Bouton[i].Commande_Os:gsub("posx", mousex):gsub("posy", mousey):gsub("arg1", arg1):gsub("arg2", arg2):gsub("arg3", arg3):gsub("arg4", arg4):gsub("arg5", arg5)
print(Bouton[i].Commande_Os)
os.execute(Bouton[i].Commande_Os)
end
if Bouton[i].Commande_Conky ~= "" then
Bouton[i].Commande_Conky=Bouton[i].Commande_Conky:gsub("posx", mousex):gsub("posy", mousey):gsub("arg1", arg1):gsub("arg2", arg2):gsub("arg3", arg3):gsub("arg4", arg4):gsub("arg5", arg5)
conky_parse( "${"..Bouton[i].Commande_Os.."}")
end
end
end
collectgarbage()
end
return ""
end
function clickfunction()
local xdot, geometry ,s ,f , click, mousex, mousey, localx, localy
--start click logging and calculations ##########################################
if start==1 then
xdot=os.execute("exec ps ax | awk '/ xdotool search --name "..Fenetre.." behave %@ mouse-click getmouselocation / {print $1}'")
if tonumber(xdot)==1 then
os.execute("kill "..xdot)
end
os.execute("xdotool search --name "..Fenetre.." behave %@ mouse-click getmouselocation >> /tmp/xdo &")
start=nil
local f = io.popen("xwininfo -name '"..Fenetre.."' | grep 'Absolute'")
geometry = f:read("*a")
f:close()
geometry=string.gsub(geometry,"[\n]","")
s,f,abstlx=string.find(geometry,"X%p%s*(%d*)")
s,f,abstly=string.find(geometry,"Y%p%s*(%d*)")
end--if start=1 ######################################
--click calculations #################################
local f=io.open("/tmp/xdo")
click=f:read()
f:close()
if click~=nil then
local f = io.open("/tmp/xdo","w")
f:write("")
f:close()
end--if click=nil
if click==nil then click="x:0 y:0 " end
s,f,mousex=string.find(click,"x%p(%d*)%s")
s,f,mousey=string.find(click,"y%p(%d*)%s")
mousex=tonumber(mousex)
mousey=tonumber(mousey)
localx=mousex-abstlx
localy=mousey-abstly
--END CLICK CALCULATIONS #################################
return localx,localy,mousex,mousey
end--function