Contenu | Rechercher | Menus

Annonce

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Pour en savoir un peu plus sur l'équipe du forum.

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

#1 Le 25/02/2015, à 22:16

joko

conky en un clic

Bonjour,
je voudrais pouvoir exécuter un script (ou une commande) en cliquant juste une icône MAIS avec Conky.
Un conky interactif en somme mais très simple : un clic sur image/icône et hop une action qui s'exécute.
Si une bonne âme passait par là...


Je suis un homme, quoi de plus naturel en somme ?
linux on the rocks

Hors ligne

#2 Le 25/02/2015, à 22:57

J5012

Re : conky en un clic

quelles difficultes rencontres-tu ?
tu sais configurer et lancer conky ? tu as des notions de script bash ?

Hors ligne

#3 Le 26/02/2015, à 18:37

LapiGNU

Re : conky en un clic

Salut,

le plus simple pour ce que tu veux faire est easystroke. Tu le règles pour réagir à un simple clic gauche pour les fenêtres de type "monBoConky" et exécuter un script qui va déterminer sur quel conky tu as cliqué, et éventuellement à quelles coordonnées sur ce conky, des fois que tu veuilles un conky avec plusieurs zones sensibles.

J'ai réalisé tout ça en bash il y a deux ans, avec tout un système qui permettait d'installer / choisir / placer ses conkies comme on le voulait, avec toute la logique pour gérer un minimum d'interactivité (par exemple pour faire un conky télécommande de vlc) ; c'était compatible avec les conkies Lua et permettait de gérer des thèmes de couleurs (multiples versions d'un même conky en fonction de la couleur dominante du fond d'écran, du thème gtk ...).

Comme c'était un boulot assez lourd pour moi à l'époque, et que l'affaire s'est jouée ici dans l'indifférence générale, j'ai lâché le morceau depuis en me disant que je m'y remettrais un jour ... Si le principe t'intéresse, je peux retrouver les sources, hoplà.

Edit : j'avais utilisé Easystroke pour détecter le clic parce que je m'en servais par ailleurs pour réagir à des "gestes à la souris" sur une tablette avec un stylet. Si tu veux éviter ce type d'application, le plus simple est d'utiliser xdotool qui est capable d'exécuter une commande quand un événement se produit sur une fenêtre, par exemple un clic. Ce faisant, xdotool et bash peuvent suffire à répondre à ton besoin.

Dernière modification par LapiGNU (Le 26/02/2015, à 18:46)


frenchKISS sur www.tchitcha.info, Ubuntu clé en main pour les réseaux de postes de travail.
et surtout : Sauvez les arbres, mangez des castors. Sauvez les castors, ne mangez pas d'arbres !

Hors ligne

#4 Le 26/02/2015, à 18:46

joko

Re : conky en un clic

@J5012, oui je connais conky et m'en sers en permanence, et je connais aussi le bash.
Donc de ce côté aucun pb. C'est sur le côté interaction que je coince.
@LapiGNU, je n'avais pas pensé à easystrocke (que j'ai utilisé jadis), donc oui je suis preneur de toute info.

merci @ vous deux pour la célérité de vos réponses...
à bien vous lire
cordialement


Je suis un homme, quoi de plus naturel en somme ?
linux on the rocks

Hors ligne

#5 Le 26/02/2015, à 23:06

J5012

Re : conky en un clic

ha une sorte de conky dynamique ? / interactif
vsido recence plusieurs methodes
http://vsido.org/index.php?topic=507.0

Hors ligne

#6 Le 27/02/2015, à 22:57

LapiGNU

Re : conky en un clic

Plein de pistes intéressantes sur vsido !

La méthode de MrPeachy est un "classique" de chez Crunchbang, où la question a été longuement creusée. Personnellement, je lui reproche d'utiliser Lua, qui m'est complètement étranger. Les conkies qui en résultent sont donc pour moi difficiles à digérer.

Le "conky clicky" fait appel à bash et xdotool, mais je trouve le code un peu difficile aussi.

J'ai réfléchi à la question et suis presque arrivé à quelque chose d'utilisable, simple et de bon goût (selon mes critères, hein) :

L'environnement dans lequel j'ai fait mes petites expériences : Ubuntu 14.04, une session Openbox, Nautilus gère le bureau. Les "fk" qui préfixent plein de noms dans mon code désignent frenchKISS, l'environnement sur lequel je travaille avec mes petits neurones ...

Pour commencer, le conky : les paramètres importants sont les suivants ...

own_window yes
own_window_type normal
own_window_class fkWidget
own_window_title dateLight
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below

On crée donc un conky de classe fkWidget nommé dateLight.

Ensuite, un script Bash qui tourne aussi longtemps que je souhaite gérer les clics sur mon conky : fkWidgetMonitor.

#!/bin/bash

xdotool search --class fkWidget behave %@ mouse-click getwindowname getmouselocation --shell exec /home/fkadmin/fkWidgetClickManage > /home/fkadmin/fkWidgetClickInfos

C'est xdotool qui tourne indéfiniment, surveille toutes les fenêtres de classe fkWidget et réagit à chaque clic gauche sur l'une de ces fenêtres. D'une part, il inscrit dans le fichier fkWidgetClickInfos le nom du conky cliqué et les coordonnées du clic ; d'autre part il exécute le script fkWidgetClickManage, qui pourra profiter de ces informations pour réagir comme on le souhaite. Par exemple, voici un script qui affiche les infos dans une boîte de dialogue :  fkWidgetClickManage ...

#!/bin/bash

zenity --info --text="$(cat /home/fkadmin/fkWidgetClic)"

Les trucs à considérer :

- xdotool tourne ici indéfiniment ; il faut penser, à la fermeture de session par exemple, à flinguer fkWidgetMonitor pour être propre.
- par ailleurs, comme c'est toujours le même process xdotool qui écrit les infos dans fkWidgetClickInfos, ce dernier fichier ne cesse de grossir à chaque clic sur un conky. Un de ces quatre, si je passe 5 millions d'années à cliquer frénétiquement, le fichier en question finira par peser 5Go !

Hoplà ?


frenchKISS sur www.tchitcha.info, Ubuntu clé en main pour les réseaux de postes de travail.
et surtout : Sauvez les arbres, mangez des castors. Sauvez les castors, ne mangez pas d'arbres !

Hors ligne

#7 Le 01/03/2015, à 00:24

joko

Re : conky en un clic

ai pris connaissance de ton post super intéressant, je vais le mettre dans un fichier et essayer de le digérer
merci beaucoup,
ps je suis sous unity, cela pose-t-il problème ?


Je suis un homme, quoi de plus naturel en somme ?
linux on the rocks

Hors ligne

#8 Le 01/03/2015, à 00:48

LapiGNU

Re : conky en un clic

Ben non, si ce n'est les sempiternelles questions d'ombres etc. à cause du compositing avec Conky.

Après, le fait que tu n'utilises pas le même gestionnaire de fenêtres que moi pourrait, éventuellement, et avec un coup de pas de bol, on ne sait jamais, réduire l'efficacité d'xdotool pour détecter le clic sur une classe de fenêtres ; il est sensible celui-là ... Enfin, je pense que ça ne serait vraiment pas de chance.


frenchKISS sur www.tchitcha.info, Ubuntu clé en main pour les réseaux de postes de travail.
et surtout : Sauvez les arbres, mangez des castors. Sauvez les castors, ne mangez pas d'arbres !

Hors ligne

#9 Le 01/03/2015, à 10:11

joko

Re : conky en un clic

ok, je regarde ça de plus près,
merci encore


Je suis un homme, quoi de plus naturel en somme ?
linux on the rocks

Hors ligne

#10 Le 05/03/2017, à 22:26

jlfh0816

Re : conky en un clic

Bonjour LapiGNU
Tout d'abord, excuse-moi de déterrer ce topic mais je pense que tu es l'homme de la situation ...
Voilà, j'ai tenté de reproduire ta méthode personnelle pour rendre cliquable un conky. En vain, je n'y arrive pas. Accepterai-tu de jeter un oeil sur mon problème ?

Tout d'abord, j'utilise Xubuntu 14.04 (64 bits) avec la version 1.9 de conky.

Voici mon conkyrc (c'est un gif animé inspiré de ce site):

#le conky appelant doit avoir sa propre fenêtre et un nom
own_window_title Cube
#definition du type de fenetre, et des décorations
own_window_argb_visual yes
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
#définition de la taille, et de la position du conky
minimum_size 135 135

alignment ml
gap_x 10
gap_y 10
#vitesse de rotation du cube
update_interval 0.15
# réglage de la mémoire, pour éviter le clignotement
double_buffer yes
# Soustraire les mémoires tampons de la mémoire utilisée
no_buffers yes
text_buffer_size 1024
imlib_cache_size 0
template1 ~/temp/gif.
template2 -p 0,0 -s 135x135

TEXT
#Conky animation with images
${if_updatenr 01}${image ${template1}001 ${template2}}${endif}
${if_updatenr 02}${image ${template1}002 ${template2}}${endif}
${if_updatenr 03}${image ${template1}003 ${template2}}${endif}
${if_updatenr 04}${image ${template1}004 ${template2}}${endif}
${if_updatenr 05}${image ${template1}005 ${template2}}${endif}
${if_updatenr 06}${image ${template1}006 ${template2}}${endif}
${if_updatenr 07}${image ${template1}007 ${template2}}${endif}
${if_updatenr 08}${image ${template1}008 ${template2}}${endif}
${if_updatenr 09}${image ${template1}009 ${template2}}${endif}
${if_updatenr 10}${image ${template1}010 ${template2}}${endif}
${if_updatenr 11}${image ${template1}011 ${template2}}${endif}
${if_updatenr 12}${image ${template1}012 ${template2}}${endif}

et voici le script bash qui doit être déclenché par le clic sur le conky (clic n'importe où sur la fenêtre entière du conky). Rien de spectaculaire, il s'agit seulement d'ouvrir le fichier Images de ma distribution :

#!/bin/bash
xdotool search --class Conky behave %@ mouse-click getwindowname getmouselocation --shell exec nemo /home/jlfh0816/Images

Pour résumer: le gif s'affiche correctement mais impossible de cliquer dessus. Et comme le lancement du script bash dans un terminal ne m'affiche aucune erreur, je ne vois pas où est le problème.
Ou alors, y a-t-il une étape intermédiaire que j'ai oublié comme par exemple consigner les coordonnées x et y de la fenêtre d'affichage du conky ? Si c'est cela, comment faut-il s'y prendre et comment apporter l'information au script bash ?

Je te remercie vraiment beaucoup par avance de ton aide,

Dernière modification par jlfh0816 (Le 06/03/2017, à 22:52)


Xubuntu - Voyager 14.04.5 LTS (64 bits) et Xubuntu - Voyager 16.04.01 LTS (64 bits)

Hors ligne