Je fais pas avoir function key
/ fn pour ça :( .
Des idées? Peut-être qu'il y a des paramètres ou des commandes?
Les autres sujets n'étaient PAS utiles:
gpointing-device-settings
(le paramètre de désactivation automatique est décoché);kde-config-touchpad
(ne peut pas être installé seul);udevd
.SOLUTION - pas automatique
Le script ci-dessous, une fois exécuté, sera désactivera le pavé tactile si une souris est connectée et affichera une notification.
touchpad_id=$(xinput | grep -i "touchpad" | cut -f2 | cut -d '=' -f2);
if xinput | grep -i "mouse" | grep -i "pointer"
then xinput set-prop $touchpad_id "Device Enabled" 0 |
notify-send "Disabling the touchpad..." ""
else xinput set-prop $touchpad_id "Device Enabled" 1 |
notify-send "The touchpad is now enabled." ""
fi
Ajoutons aussi une situation inverse, bien que dans mon cas, le pavé tactile soit activé lors de la déconnexion de la souris. J'ai sauvegardé le script dans un fichier et je l'exécute à partir de la section Unity Launcher
Terminal
après chaque branchement de la souris.
AVANCÉ
Plus de souris?
Précisez quelle mouse
doit désactiver le pavé tactile en développant la valeur dans le fragment "mouse"
, en fonction de la liste de périphériques xinput
.
La souris effrayée court d'un bord à l'autre?
Je devais exécuter une commande supplémentaire pour la souris - décroissante cursor acceleration
car il est réglé follement sur 10 à chaque connexion. En fait, au bout d’un moment, j’ai créé un script de détection automatique (il obtient l’identifiant de la souris et son avantage pour la vélocité; je ne sais pas pour ce qui est de la performance de cut
) ...
touchpad_id=$(xinput | grep -i "touchpad" | cut -f2 | cut -d '=' -f2);
mouse_id=$(xinput | grep -i "mouse" | grep -i 'pointer' | cut -f2 | cut -d '=' -f2);
mouse_prop=$(xinput list-props $mouse_id | grep -i "velocity" | cut -f2 | cut -d '(' -f2 | cut -d ')' -f1 );
if xinput | grep -i "mouse" | grep -i "pointer"
then xinput set-prop $touchpad_id "Device Enabled" 0 |
xinput set-prop $mouse_id $mouse_prop 3 |
notify-send "Disabling the touchpad..." ""
else xinput set-prop $touchpad_id "Device Enabled" 1 |
notify-send "The touchpad is now enabled." ""
fi
Aujourd'hui, j'ai beaucoup appris à faire ci-dessus: D.
QUELQUE PRO?
Serait utile de savoir comment le rendre automatique.
Aussi curieux de savoir pourquoi la configuration de la souris n’est pas sauvegardée (2.).
Solution - automatique
Merci à Esamo et à son travail.
Pour ajouter des déclencheurs AUTO pour connecter la souris au démarrage:
Créez le fichier: /etc/udev/rules.d/10-local.rules
Remplissez ce contenu: (remplacez $ USER par votre nom d'utilisateur)
ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/$USER/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/$USER/scripts/touchpad_switcher.sh false"
ACTION=="remove", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/$USER/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/$USER/scripts/touchpad_switcher.sh true"
Exemple:
ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/dawid/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/dawid/scripts/touchpad_switcher.sh false"
ACTION=="remove", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/dawid/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/dawid/scripts/touchpad_switcher.sh true"
Ensuite, placez votre script où vous voulez. Je l'ai placé dans ~/scripts
touchpad_switcher.sh
#!/bin/sh
enabled=$1
touchpad_id=$(xinput | grep -i "touchpad" | cut -f2 | cut -d '=' -f2);
if $enabled
then
xinput set-prop $touchpad_id "Device Enabled" 1 | notify-send "The touchpad is now enabled." ""
else
xinput set-prop $touchpad_id "Device Enabled" 0 | notify-send "Disabling the touchpad..." ""
fi
N'oubliez pas d'ajouter des autorisations d'exécution:
chmod +x touchpad_switcher.sh
Maintenant, redémarrez simplement! (simplement redémarrer udev ne semble pas fonctionner ...)
Quelques autres trucs utiles:
Quelques infos sur règles udev
Ce que @David Drozd a posté ne fonctionne pas pour moi sur Ubuntu 16.04 .
On dirait que le truc avec xinput
ne fonctionne pas dans udev
. Seul synclient TouchpadOff=[0|1]
a fonctionné. De plus, ACTION="remove"
ne fonctionnait pas uniquement.
Je l'ai finalement eu quand ajouté ENV{REMOVE_CMD}="/bin/sh -c '/usr/bin/synclient TouchpadOff=0'"
La solution complète: créez le fichier /etc/udev/rules.d/10-local.rules
avec la ligne suivante (remplacez $ USER par votre nom d'utilisateur)
ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/$USER/.Xauthority", ENV{REMOVE_CMD}="/bin/sh -c '/usr/bin/synclient TouchpadOff=0'", RUN+="/bin/sh -c '/usr/bin/synclient TouchpadOff=1' "