Problèmes et questions concernant l'édition XFCE.

[Conky] afficher les leds du clavier

#1Messageil y a 1 an

Bonjour à tous et à toutes.
Je suis passé de GKrellM à Conky.
J'en suis satisfait mais j'aimerai afficher graphiquement l'état des leds du clavier comme pouvait le faire Gkleds dans GKrellM :
Image
Quelqu'un sait-il faire cela ?
Merci.
Ignace.
Dernière modification par ignace72il y a 1 an, modifié au total 1 fois.

[Conky] afficher les leds du clavier

#2Messageil y a 1 an

Existe 50 000 façons : c'est le propre de conky

Il te suffit de trouver une commande en console et d'en extraire la bonne colonne (filtre: sed, awk, gep, ...)
(par exemple "xset q" donne des infos)

Une fois que tu as le bon résultat dans ton terminal, tu l'inclues dans ton conky (avec un timeur de 4 secondes par exemple)

-----------------
Tu pouvais quand même faire une petite recherche web :oops:
conky keyboard status led et le premier (aucune idée si la meilleure solution)

[Conky] afficher les leds du clavier

#3Messageil y a 1 an

Bonjour, papajoke.
J'ai déjà vu cette page en faisant mes recherches sur le sujet.
Ça donne l'état des leds en mode texte, mais pas sous forme graphique donc ce n'est pas ce que je recherche.

L'idéal serait si l'état de verrouillage nombres est sur on, il affiche une image, il l'état est sur off, il affiche une autre image.

Ou plus simple si la première possibilité n'est pas possible : si l'état de verrouillage nombres est sur on, affiche la lettre N noire dans un carré vert et si l'état est sur off, affiche la lettre N blanche dans un carré gris.

Ignace.

[Conky] afficher les leds du clavier

#4Messageil y a 1 an

Ok, donc la question est sur la syntaxe de conky ...

Pas fait de conky depuis des années, aujourd'hui il me semble qu'il utilise un véritable langage de programmation : lua
Sinon en plus classique, tu recherches une écriture du type "if command else"

si ta commande dans ta console retourne soit "on", soit "off"

${if_match ${exec commande|grep xxx'} == "on"} ${image /home.xxx/vert.png} ${endif} 
${if_match ${exec commande|grep xxx'} == "off"} ${image /home.xxx/noir.png} ${endif} 
ou peut-être

${if_match ${exec commande|grep xxx'} == "on"} ${image /home.xxx/vert.png} ${else} ${image /home.xxx/noir.png} ${endif}
En fait, c'est comme l'affichage du texte

${if_match ${exec commande|grep xxx'} == "on"} allumé ${else} éteind ${endif}

[Conky] afficher les leds du clavier

#5Messageil y a 1 an

Voilà, c'est ça.
Merci à toi.
Je vais faire les 6 images et je vais tester cela.
Je reviendrai ici pour dire si c'est bon.
Ignace.

[Conky] afficher les leds du clavier

#6Messageil y a 1 an

Salut,
ignace72 a écrit : il y a 1 an L'idéal serait si l'état de verrouillage nombres est sur on, il affiche une image, il l'état est sur off, il affiche une autre image.
xset -q ne donne pas l'état de chaque LEDs, mais l'état des deux, verrouillage des majuscules et verrouillage pavé numérique.
Si tu fais :

xset -q | grep LED| awk '{ print $10 }'
00000002
00000002 veut dire numérique on et majuscules off.

[Conky] afficher les leds du clavier

#7Messageil y a 1 an

Bonsoir, Smurf.
Merci de ton aide.
En fait :

xset q | grep Caps
xset q | grep Num
xset q | grep Scroll
Donne l'état des trois leds. Le verrouillage des majuscules, du pavé numérique et l'arrêt du défilement.

Si je fais avec verrouillage du pavé numérique allumé :

${if_match ${exec xset -q | grep LED| awk '{ print $10 }'} == "00000002"} ${image /home/ignace/.config/conky/conky-kb-leds/NL-on.png}${endif}
Ça m'affiche l'image par contre, elle reste affichée même si je rappuie sur la touche de verrouillage du pavé numérique.
Si par contre, si le pavé numérique n'est pas activé, Conky ne se lance pas et le terminal me met comme erreurs :

conky: trying to compare args '00000000 ' and ' "00000002"' of different type
conky: compare failed for expression '00000000 == "00000002"'
Ignace.

[Conky] afficher les leds du clavier

#8Messageil y a 1 an

Pourquoi nous indiquer que xset q | grep Caps fait le job et utiliser LED ???
EDIT: (pour @Smurf) surtout que tu as déjà créé une image par touche NL-on.png

Je ne sais pas si tu as le même retour que moi : les 3 sont sur la même ligne

xset q | awk '/Lock/ {print $0}'
    00: Caps Lock:   off    01: Num Lock:    on     02: Scroll Lock: off
Donc, je change uniquement le numéro de colonne pour avoir les 3 valeurs "on" ou "off"

xset q | awk '/Caps Lock/ {print $4}'
xset q | awk '/Num Lock/ {print $8}'
xset q | awk '/Scroll Lock/ {print $12}'
note: j'ai changé le regex, mais si les 3 sur la même ligne : aucun intérêt

[Conky] afficher les leds du clavier

#9Messageil y a 1 an

ignace72 a écrit : il y a 1 an Si je fais avec verrouillage du pavé numérique allumé :

${if_match ${exec xset -q | grep LED| awk '{ print $10 }'} == "00000002"} ${image /home/ignace/.config/conky/conky-kb-leds/NL-on.png}${endif}
Ça m'affiche l'image par contre, elle reste affichée même si je rappuie sur la touche de verrouillage du pavé numérique.
Si par contre, si le pavé numérique n'est pas activé, Conky ne se lance pas et le terminal me met comme erreurs :

conky: trying to compare args '00000000 ' and ' "00000002"' of different type
conky: compare failed for expression '00000000 == "00000002"'
C'est normal qu'il y ait une erreur si le test n'est pas bon. Tu vas devoir faire quatre tests pour afficher tes images, soit tester de 00000000 à 00000003, soit comme le montre papajoke, tester on et off pour chaque touche.

[Conky] afficher les leds du clavier

#10Messageil y a 1 an

Bonjour à tous et toutes.
Si je fais :

xset q | awk '/Num Lock/ {print $4}'
J'ai comme réponse :
off
Pourtant :

xset q | awk '/Lock/ {print $0}'
J'ai comme réponse :

    00: Caps Lock:   off    01: Num Lock:    on     02: Scroll Lock: off
    09: Mail:        off    10: Charging:    off    11: Shift Lock:  off
Je suis donc revenu à ma ligne de départ que j'ai dupliqué pour chaque état :

${if_match ${exec xset -q | grep LED| awk '{ print $10 }'} == "00000002"} ${image /home/ignace/.config/conky/conky-kb-leds/NL-on_CL-off_SL-off.png}${endif}${if_match ${exec xset -q | grep LED| awk '{ print $10 }'} == "00000000"} ${image /home/ignace/.config/conky/conky-kb-leds/NL-off_CL-off_SL-off.png}${endif}${if_match ${exec xset -q | grep LED| awk '{ print $10 }'} == "00000001"} ${image /home/ignace/.config/conky/conky-kb-leds/NL-off_CL-on_SL-off.png}${endif}${if_match ${exec xset -q | grep LED| awk '{ print $10 }'} == "00000003"} ${image /home/ignace/.config/conky/conky-kb-leds/NL-on_CL-on_SL-off.png}${endif}
Au lancement de Conky, une image s'affiche qui correspond à l'état des leds.
J'ai toujours les erreurs :

conky: trying to compare args 'xxxxxxxx ' and ' "xxxxxxxx"' of different type
conky: compare failed for expression 'xxxxxxxx == "xxxxxxxx"'
Et les images ne changent pas si je modifie les états de « Ver_num » et de « Ver_maj ».
Ignace.

[Conky] afficher les leds du clavier

#11Messageil y a 1 an

ignace72 a écrit : il y a 1 anSi je fais :

xset q | awk '/Num Lock/ {print $4}'
J'ai comme réponse : off
Pourtant :

xset q | awk '/Lock/ {print $0}'
J'ai comme réponse :

    00: Caps Lock:   off    01: Num Lock:    on     02: Scroll Lock: off
    09: Mail:        off    10: Charging:    off    11: Shift Lock:  off
Je suis donc revenu à ma ligne de départ
:lol:
Normal, si tu ne me lis pas
papajoke a écrit : il y a 1 an Donc, je change uniquement le numéro de colonne pour avoir les 3 valeurs "on" ou "off"

xset q | awk '/Caps Lock/ {print $4}'
xset q | awk '/Num Lock/ {print $8}'
xset q | awk '/Scroll Lock/ {print $12}'
C'est bien précisé, uniquement la colonne qui est importante !!!! (si les 3 sont sur la même ligne)
avec ton $4, tu as la 4ème colonne de ton 00: Caps Lock: off 01: Num Lock: on 02: Scroll Lock: off
soit : "00: Caps Lock: off 01"
Et les images ne changent pas si je modifie les états de « Ver_num » et de « Ver_maj ».
Bien pour cela que je t'avais dit de tester en premier avec juste du texte...
Un conky se "relance" toutes les x secondes : c'est ta config ! Éventuellement, il doit être possible de passer un autre tempo en utilisant execi à la place de exec :saispas:

[Conky] afficher les leds du clavier

#12Messageil y a 1 an

Le problème avec :

xset q | awk '/Caps Lock/ {print $4}'
xset q | awk '/Num Lock/ {print $8}'
xset q | awk '/Scroll Lock/ {print $12}'
C'est que les images se superposent.
D'autre part, que ça soit avec awk ou grep, les images s'affichent les unes derrières les autres pour se terminer sur la dernière dans le code et remplacer exec par execi n'y change rien.
Ignace.

[Conky] afficher les leds du clavier

#13Messageil y a 1 an

ignace72 a écrit : il y a 1 an C'est que les images se superposent.
Normal, c'est un vrai petit langage, donc sans lire la moindre doc c'est un miracle si cela fonctionne (il y a des paramètres de positionnement et de taille pour les images)
doc officielle a écrit : Conky ne fait aucune tentative pour ajuster la position (ou tout autre formatage) des images, elles sont simplement rendues selon les arguments passés.
remplacer exec par execi n'y change rien.
même chose, execi prend un paramètre supplémentaire (et existe d'autres exec)

[Conky] afficher les leds du clavier

#14Messageil y a 1 an

execi prend un nombre comme paramètre, mais ça ne change rien, les images s'ajoutent les unes sur les autres et s'arrêtent sur la dernière image dans le code.
Ignace.

[Conky] afficher les leds du clavier

#15Messageil y a 1 an

ignace72 a écrit : il y a 1 an execi prend un nombre comme paramètre, mais ça ne change rien, les images s'ajoutent les unes sur les autres et s'arrêtent sur la dernière image dans le code.
:rigole:
normal, déjà écrit plus haut :
- exec, c'est uniquement pour la temporisation, donc rien à voir avec les images (je t'ai dit de faire le test d'abord avec du texte... mais jamais fait ;rale: ), un truc type :
${if_match xxxx == yyyy} ${color red}OFF ${else} {color green}ON ${endif}
Comme dit avant, si en "mode texte", cela ne fonctionne pas, aucun intérêt d'ajouter les images
Donc ton problème exec devait être réglé bien avant les images, mélanger les 2, c'est juste génial pour complexifier la résolution (mais pourquoi pas si on est à l'aise avec conky).

- les images : dit plus haut, il faut leur passer leur position :Rouleau: tu n'as pas lu la moindre doc ? pas trouvés le moindre exemple avec image ??? il y a toujours la position !!! Je l'ai écrit au message précédent mais tu persistes ?
Conky, c'est avant tout un langage, donc si on désire personnaliser notre truc, il n'y a pas le choix, faire des tutos/lire la doc /faire des minis tests

---------

Pour ta question re-postée sur développez ...
Cette erreur est plus que normale et le message d'erreur indique bien pourquoi ! (je ne t'ai pas répondu car j'ai l'impression que tu ne cherches même pas à lire/comprendre/résoudre mais uniquement que quelqu'un résolve pour toi)
Tu essayes de comparer des choux avec des carottes
Si ta commande bash retourne une chaine (comme "on"/"off"), tu compares avec une chaine ... si ta commande retourne un nombre, tu compares avec un nombre. C'est une base dans tout langage !

if_match ${xxx} == "00000002" : compare 2 chaines
if_match ${xxx} == 00000002 : compare 2 nombres

[Conky] afficher les leds du clavier

#16Messageil y a 1 an

Bonjour, papajoke.
Moi, je veux bien la lire, la DOC mais quand je vais dessus (http://wiki.conky.cc/index.php/Main_Page) c'est un rectangle blanc vide sur bordures noires.

Le problème a été résolu par benjarobin du forum français d'ArchLinux.
Il m'a conseillé de remplacer xset -q | grep LED| awk '{ print $10 }' par xset -q | awk '/LED/{ print $10 }'
Et de remplacer ${execi 1 xset ...} == "00000002" par simplement ${execi 1 xset ...} == 2.
C'est ce que j'ai fait et ça fonctionne super.
Voilà la nouvelle commande :

${if_match ${execi 1 xset -q | awk '/LED/{ print $10 }'} == 2} ${image /home/ignace/.config/conky/conky-kb-leds/NL-on_CL-off_SL-off.png}${endif}${if_match ${execi 1 xset -q | awk '/LED/{ print $10 }'} == 0} ${image /home/ignace/.config/conky/conky-kb-leds/NL-off_CL-off_SL-off.png}${endif}${if_match ${execi 1 xset -q | awk '/LED/{ print $10 }'} == 1} ${image /home/ignace/.config/conky/conky-kb-leds/NL-off_CL-on_SL-off.png}${endif}${if_match ${execi 1 xset -q | awk '/LED/{ print $10 }'} == 3} ${image /home/ignace/.config/conky/conky-kb-leds/NL-on_CL-on_SL-off.png}${endif}
Ignace.

[Conky] afficher les leds du clavier

#17Messageil y a 1 an

ignace72 a écrit : il y a 1 an Moi, je veux bien la lire, la DOC mais quand je vais dessus (http://wiki.conky.cc/index.php/Main_Page) c'est un rectangle blanc vide sur bordures noires.
Le wiki est indiqué à la page du projet, aucune idée à quoi correspond ton lien
https://github.com/brndnmtthws/conky/wiki
ignace72 a écrit : il y a 1 an Il m'a conseillé de remplacer
Ceci ne change strictement rien ! C'est juste de l'optimisation (on lance une commande au lieu de 2). Perso dans ce que j'ai donné je n'ai jamais utilisé grep mais fait directement le regex dans awk.
perso: si je voulais faire de l'optimisation jamais je n'utiliserais conky (il lance 136 commandes toutes les secondes ?) - avec machine puissante, pas de problème.
ignace72 a écrit : il y a 1 an Et de remplacer ${execi 1 xset ...} == "00000002" par simplement ${execi 1 xset ...} == 2.
oui, je répète, on ne mélange pas les choux et carottes. Toute personne qui a fait un jour un code dans un langage divers le sait, et le message était clair.

Si personne n'a répondu immédiatement sur les 3 forums à ta question alors que pratiquement tout le monde est capable de répondre, c'est que la réponse était dans le message d'erreur et que normalement tu devais pouvoir trouver très rapidement par toi-même :wink:
conky: trying to compare args 'xxxxxxxx ' and ' "xxxxxxxx"' of different type
conky: compare failed for expression 'xxxxxxxx == "xxxxxxxx"'
il te dit bien que xxxxxxxx == "xxxxxxxx" n'est pas valide car de type différents. ET, si l'on joue au jeu des 7 différences, on peut voir les "" à droite en plus. Pas vraiment dur à résoudre non ? Même si l'on a jamais écrit de code de sa vie.

[Conky] afficher les leds du clavier

#18Messageil y a 1 an

Désolé si je ne comprends pas vite, je suis une personne handicapée, j'ai une maladie incurable qui détériore mes fonctions cognitives.
Bon, je sais, on s'en fout.
Donc je fais avec ce que j'ai.
Des trucs évidents ne le sont pas forcément pour moi.
Mais je ne vais pas arrêter l'informatique pour autant.
L'adresse je l'ai trouvé ici : http://conky.sourceforge.net/documentation.html, c'est le premier résultat quand on recherche « doc conky » sur Google.
Ignace.

[Conky] afficher les leds du clavier

#19Messageil y a 1 an

ignace72 a écrit : il y a 1 an Désolé si je ne comprends pas vite, je suis une personne handicapée, j'ai une maladie incurable qui détériore mes fonctions cognitives.
Bon, je sais, on s'en fout.
Bonjour.
Personne ne peut se ficher du handicap de quelqu'un. Crois moi, tu as mon entière compassion et je devrais dire <notre>.
C'est juste que la santé n'est pas de notre domaine de compétence et que nous tentons dans la mesure de notre disponibilité de partager nos connaissances liées à Manjaro et plus généralement à l'informatique libre.
Tout ce que je peux dire, c'est que tu sembles chercher la perfection, ce qui est louable et surtout instructif, mais plus on cherche et plus on cherche...
Désolé, je ne peux t'aider n'ayant pas de clavier à LED.

[Conky] afficher les leds du clavier

#20Messageil y a 1 an

Ton lien trouvé pointe sur une page pas trop à jour: version 1.8 et le "change log" ... 2012 le plus récent :mrgreen: Merci aux moteurs de recherche de mettre cette page en premier lieu.

Je compatis à tes problèmes. Tu en as sens doute déjà parlé ici mais je ne prends pas de notes spéciales sur les membres. Mon but est d'aider les linuxiens à être autonomes et surtout pas en faire des assistés chroniques. Donc, avec un "ancien" membre, je ne vais pas lui servir la soupe sur un plateau mais tout faire pour qu'il arrive à faire sa propre popotte (parfois en le bousculant un peu, nous sommes entre amis, rien de méchant, ni de personnel).
Répondre