Les Thinkpads (par exemple, le X230 que j'utilise) ont à la fois un trackpoint et un pavé tactile. Le pavé tactile est désactivé lors de la frappe.
Cependant, lorsque j'utilise le point de suivi, je touche souvent aussi le pavé tactile et génère des clics de souris que j'aimerais éviter. Quelqu'un a-t-il une idée de la manière de désactiver les clics de souris sur le pavé tactile lorsque le point de suivi est utilisé?
EDIT: aussi, quelqu'un peut-il expliquer comment l'option de désactiver le pavé tactile lors de la frappe fonctionne? Que fait-on dans les coulisses? Est-ce une commande de configuration xinput, et si oui, laquelle?
EDIT2: clarification; désactiver manuellement le pavé tactile (même avec un raccourci) n’est pas le problème ici. Cela devrait fonctionner comme l'option "désactiver le pavé tactile lors de la frappe", car j'utilise indifféremment le pavé tactile et le point de suivi (le plus souvent, j'utilise le pavé tactile pour le défilement et le point de contrôle pour déplacer le curseur).
Cette fonction est exécutée par l'utilitaire syndaemon
name__, à partir du package xserver-xorg-input-synaptics
. Vous pouvez définir des options telles que la durée d'inactivité, la fréquence d'interrogation, etc. (voir aide à l'exécution ):
Utilisation: syndaemon [-i temps d'inactivité] [-m poll-delay] [-d] [-t] [-k] -I Combien de secondes attendre après la dernière touche appuyez sur avant pour activer le pavé tactile. (la valeur par défaut est 2,0s) -m Combien de millisecondes doivent attendre jusqu'au prochain sondage (la valeur par défaut est 200 ms) ... -t uniquement désactivez le tapotement et le défilement, pas les mouvements de la souris.
Voici le code source pour syndaemon.c
.
keyboard_activity(...)
et main_loop(...)
keyboard_activity
utilise le XQueryKeyMap Appel d'API pour obtenir l'état actuel du clavier (1 bit par touche), puis le compare jusqu'au dernier (ancien) état; si elles sont différentes, ça retourne 1main_loop
interroge keyboard_activity
toutes les m
millisecondes, et en fonction de la "dernière activité" et si keyboard_activity
renvoie true ou false, il décide de désactiver ou d'activer le pavé tactile.dp_get_device
illustre comment les périphériques d’entrée X sont énumérés; vous devriez pouvoir modifier ceci et la fonction keyboard_activity
pour vérifier également toute activité de point de suivi.L'outil xinput
répertorie les périphériques et les ID, par exemple "
N ° de pointeur du noyau virtuel = 2 [pointeur principal (3)] ⎜ ↳ N ° du pointeur central du XTEST virtuel = 4 [pointeur esclave (2)] SynPS/2 Synaptics Pavé tactile id = 11 [pointeur esclave (2)] ↳ ↳ TPPS/2 id IBM TrackPoint = 12 [pointeur esclave (2)]
Vous pouvez obtenir cet identifiant via la fonction XListInputDevices
Vous pouvez utiliser l'utilitaire xinput
avec le commutateur query-state
et l'ID de périphérique pour vérifier si votre programmation est correcte, par exemple:
$ xinput query-state 12 2 classes: ButtonClass bouton [1] = haut bouton [2] = haut bouton [3] = haut bouton [4] = haut bouton [5] = haut bouton [6] = haut bouton [7] = up ValuatorClass Mode = Relative Proximity = In Valuator [0] = 854 Valuator [1] = 867
xinput
pour plus de conseils.Pour modifier et reconstruire ce paquet:
apt-get source...
tools/syndaemon.c
syndaemon
existants en commentant les lignes 118...
et 124...
dans debian/patches/series
dpkg-buildpackage -us -uc
et les fichiers deb seront dans le répertoire parent.La première chose à faire est de connaître votre identifiant de pavé tactile. Pour ce faire, suivez ces étapes
Premier terminal ouvert et Exécuter cette commande
~$ xinput --list
Ici nous avons ce Touchpad id = <id Number>
Après cela, ouvrez les raccourcis clavier puis ajoutez cette commande ci-dessous deux avec vos raccourcis clavier.
# Disable Touchpad:
xinput set-prop <id number> 'Device Enabled' 0
# Enable Touchpad:
xinput set-prop <id number> 'Device Enabled' 1
Voici une solution low-tech qui pourrait être mauvaise pour l'utilisation de l'énergie (le correctif syndaemon -T ne fonctionnait pas pour moi).
#!/bin/sh
TRACKPOINT_DEV="TPPS/2 IBM TrackPoint"
SLEEP_TIME=5
OLD_XY=0,0,
while true; do
NEW_XY=`xinput query-state "$TRACKPOINT_DEV" |grep valu|awk 'BEGIN { FS = "=" } ; {print $2 ","}'|xargs`
if [ ! "$OLD_XY" = "$NEW_XY" ]; then
synclient TouchpadOff=1
else
synclient TouchpadOff=0
fi
sleep $SLEEP_TIME
OLD_XY="$NEW_XY"
done
Il doit être un peu chanceux de remarquer que vous utilisez le trackpoint, car il ne peut indiquer que les coordonnées au cours de chaque intervalle de 5 secondes. En d'autres termes, il est prudent de désactiver le pavé tactile mais ne doit pas le réactiver de manière fiable lorsque le point de suivi est inactif.
En tout cas, cela m'aide beaucoup sur mon ultrabook avec le curseur errant de Palm Press.