#1 Le 26/02/2016, à 19:44
- erresse
Indicateur d'état des verrouillages du clavier
Bien sûr, je sais qu'il existe des "applets" pour remplir cette fonction, mais... Il ne sont pas toujours compatibles avec toutes les variantes et versions de *buntu, et je vois parfois des demandes qui ne sont pas satisfaites.
J'ai donc réalisé un petit script bash de quelques lignes permettant d'afficher dans une fenêtre zenity l'état des verrouillages en l'absence des diodes correspondantes du clavier.
Le voici, je l'ai baptisé "VerClav" :
#! /bin/bash
# Affichage de l'état des touches de verrouillage du clavier
# Acquisition de l'état des verrouillages
indic=$(xset q | grep "LED mask")
indic=${indic: -1}
# Décodage des verrouillages actifs
[[ ${indic} = [1357] ]] && MajLock="True" || MajLock="False"
[[ ${indic} = [2367] ]] && NumLock="True" || NumLock="False"
[[ ${indic} = [4567] ]] && DefLock="True" || DefLock="False"
# Affichage de l'état des verrouillages
zenity --list --checklist --title "État verrouillage" --text "Touches de verrouillage actives" --height "165" --column="Coche" --column="Touche" --hide-header "${MajLock}" "Verrouillé en Majuscules" "${NumLock}" "Verrouillé en Numérique" "${DefLock}" "Défilement verrouillé"
exit 0
Récupérez le code ci-dessus et enregistrez-le dans votre dossier de scripts.
Pour l'utiliser facilement, créez-vous un lanceur (Commande : /bin/bash /home/vous/dossier_de_scripts/VerClav) que vous placerez dans la barre de lancement rapide de votre tableau de bord ou de votre dock.
D'un simple clic, vous ferez apparaître la fenêtre qui affiche l'état des trois touches verrouillables : Numérique, Majuscule et Défilement.
Dernière modification par erresse (Le 26/02/2016, à 19:46)
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#2 Le 30/03/2016, à 20:35
- Bacchux
Re : Indicateur d'état des verrouillages du clavier
Bonjour,
Pour ma part, je préfère avoir en permanence l'indicateur d'état sur mon écran.
Comme je l'explique ailleurs, il est très facile de mettre sur un tableau de bord un affichage de cet état.
Il suffit pour cela d'ajouter au tableau de bord une instance de l'applet Command qui permet d'afficher la sortie d'une commande
et de donner comme commande un script bash très court, contenant deux commandes :
#!/bin/bash
MAJNUM=`xset q | grep Caps | sed -e 's/^.*Caps.*\(o[nf].\).*Num.*\(o[nf].\).*Scroll.*$/MAJ: \1 - NUM: \2/'`
echo "$MAJNUM"
# ne pas oublier de rendre ce script exécutable !!!
La première commande filtre et retraite la sortie de la commande xset q et place le résultat dans une variable.
La seconde affiche le contenu de la variable, c'est-à-dire l'état des verrous.
Illustration:
http://gja.frndz.pagesperso-orange.fr/u … majnum.jpg
Le rafraîchissement une fois par seconde est suffisant pour l’utilisateur et représente une charge négligeable pour la machine.
Modération : merci d'utiliser des images de petite taille (300x300) ou des miniatures pointant sur ces images (Des hébergeurs comme Toile Libre ou TDCT'Pix le permettent).
Dernière modification par cqfd93 (Le 30/03/2016, à 21:00)
Beatux qui prodest quibus potest
Atelier linux (Ubuntu et Suse)
Hors ligne
#3 Le 31/03/2016, à 08:50
- erresse
Re : Indicateur d'état des verrouillages du clavier
Excellent !
C'est aussi une forme d'exploitation de cette commande "xset" bien utile et bien peu connue...
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#4 Le 22/02/2023, à 09:54
- cdcd
Re : Indicateur d'état des verrouillages du clavier
bonjour,
vos scripts (@erresse, @Bacchux ) fonctionnent très bien, mais ça ne résout pas mon problème :
détecter la touche INS (ou Insérer)
pour mieux comprendre (@erresse) d'ou viennent les valeurs 1357, 2367, 4567
comment modifier (@Bacchux)
MAJNUM=`xset q | grep Caps | sed -e 's/^.*Caps.*\(o[nf].\).*Num.*\(o[nf].\).*Scroll.*$/MAJ: \1 - NUM: \2/'`
pour qu'il renvoie trois valeurs, par exemple : MAJ: off - NUM: on - INS off
D'avance merci de vos réponses
Cordialement
Hors ligne
#5 Le 22/02/2023, à 09:57
- sputnick
Re : Indicateur d'état des verrouillages du clavier
Déterrage de 7 ans!
Dernière modification par sputnick (Le 22/02/2023, à 09:58)
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#6 Le 22/02/2023, à 11:14
- sputnick
Re : Indicateur d'état des verrouillages du clavier
Si ins est bien le scroll:
$ xset q |
grep Caps |
perl -pe 's/^\s+\d+:\s+\bCaps\s+Lock:\s+(on|off).*?Num\s+Lock:\s+(on|off).*?Scroll\s+Lock:\s+(on|off)/MAJ: $1 - NUM: $2 - INS: $3/'
Sortie:
MAJ: off - NUM: off - INS: off
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#7 Le 22/02/2023, à 14:25
- cdcd
Re : Indicateur d'état des verrouillages du clavier
Merci de votre réponse,
ça fonctionne, mais ça ne rend pas l'état de la touche du INS (Insérer)
soir le paramètre Scroll n'est pas bon pour la touche INS, soit elle n'est pas détectable ainsi.
Le code suivant ne reflète pas non plus l'état de la touche INS, ni ArrêtDéf, toujours off
xset q | grep Scroll
j'ai évidemment essayé xset q | grep Ins, xset q | grep Insert, ...
sans succés
Je vais continuer de chercher...
Bien cordialement
Hors ligne
#8 Le 22/02/2023, à 14:45
- sputnick
Re : Indicateur d'état des verrouillages du clavier
Le touche Insertion est une touche sans effet de switch comme capslock. Pourquoi vouloir tester cette touche?
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne