Activer et désactiver le touchpad avec le Caps Lock

Personnellement je ne me sers jamais du Caps Lock et, étant sur awesome WM, j’ai rarement besoin de la souris (d’autant plus qu’il m’arrive de la bouger alors que je tape, ce qui me rend fou!). J’ai bien cherché sur internet mais j’ai trouvé aucune solution qui me permettrait d’activer ou de désactiver le pavé tactile rapidement, en me donnant un retour visuel qui plus est. Alors je sais pas si je suis le seul dans mon cas de figure, mais je me suis dis que je pourrais partager ma solution ici quand même, au cas où. Attention il vous faudra un accès root.

Le script

Si vous souhaitez en plus cacher le pointeur de la souris quand celle-ci est désactivée, il faudra avant télécharger le programme ‘unclutter’.

Sauvegardez ce script quelque part.

#!/bin/bash

export PATH=/bin

getLEDStatus()
{
    if su -c 'setleds -L < /dev/console' | grep "CapsLock off"
    then
	return 1
    fi
    return 0
}

if getLEDStatus
then
    # LED was on, now off (because of `setleds -L`)
    synclient touchpadoff=1 # Turn touchpad off
    # unclutter -idle 0     # Uncomment to hide cursor as well, needs unclutter
else
    # LED was off (and still is)
    su -c 'setleds -L +caps < /dev/console' # Turn LED on
    synclient touchpadoff=0 # Turn touchpad back on
    # killall unclutter     # Uncomment if you have unclutter
fi

Puis exécutez ces commandes:

chmod +x <nom_du_fichier>         # Le rendre executable
sudo chattr +i <nom_du_fichier>   # Le rendre immutable

En effet comme ce fichier va être exécuté avec les droits root plusieurs fois par session, il est impératif d’empêcher n’importe qui de le modifier.

Seulement on ne peut pas devoir rentrer son mot de passe à chaque fois que l’on veut se servir de ce fichier. C’est pourquoi il va falloir modifier son fichier sudoers.

sudo -E visudo # grâce au -E on peut utiliser son $EDITOR 

Et ajoutez cette ligne, en modifiant les deux champs entre “<>”.

<login> ALL=(ALL) NOPASSWD: <chemin_complet_du_script>

Pour finir

Maintenant il va falloir executer deux commandes au démarrage de votre session:

setxkbmap -option caps:none
sudo <le_chemin_complet_du_script>

La première désactive la fonction par défaut du verr Maj, la deuxième éxecute le script afin de tout de suite synchroniser la LED avec le touchpad.

Ensuite il faut que le raccourci clavier vienne executer le script en tant que root. Pour ceux qui utilisent awesome vous pouvez ajouter cette ligne à votre rc.lua:

awful.key({}, "#66", function () awful.util.spawn("sudo <chemin_complet_du_script>", false) end),

La touche Caps Lock possède le numéro 66 pour ceux qui en ont besoin (mais vous pouvez confirmer avec la commande xev).

 

Redémarrez votre session et tout devrait fonctionner! N’hésitez pas à vous plaindre dans les commentaires si c’est pas le cas, on fera de notre mieux pour vous aider.

Vus : 661
Publié par Maxime : 5