J'ai renversé la bière dans mon clavier mécanique et depuis que cela a tendance à répéter la touche "A" chaque fois que je l'appuie (oui, je l'ai nettoyé plusieurs fois, utilisé AA Logohol, etc.). J'ai essayé d'atténuer ce problème à l'aide de "touches de rebond", mais cette fonctionnalité désactive temporairement Toutes les clés Après aa reproché. En d'autres termes, "Key Keys" interfère avec ma capacité à taper rapidement chaque fois que je dois taper un mot avec une lettre répétée (<comme "T" dans le mot "lettre") ou la répétition AAA Appuyez rapidement sur BackSpace.
(Ok je ne laisserai pas les répétitions dans le texte restant, mais vous pouvez voir qu'il se produit avec M AA Fréquence Denning)
Si cela aide, j'ai utilisé Xev pour déterminer exactement la séquence de commandes que le système d'exploitation reçoit et on dirait que chaque fois que "A" se répète elle-même, c'est parce que le clavier envoie la séquence souhaitée plusieurs fois (KeyPress suivi de KeyRelease, puis suivi de KeyRelease à nouveau). En d'autres termes, la clé ne colle pas dans l'état "KeyPress". Il se répète comme si J'ai appuyé et le libéré plusieurs fois.
J'ai vu d'autres personnes poser cette même question, mais les solutions ne sont pas vraiment celle que je cherche. Par exemple, la solution proposée dans la première réponse à cette question désactive AutOutpeat, mais cela ne fonctionnera pas pour moi car "A" ne se coince pas dans l'état "pressé". La deuxième réponse dans la même question ne fonctionne pas non plus, car elle désactive le clavier entier après pression sur la touche Problème. Je veux juste désactiver temporairement la clé "a" et seule la clé "a" pendant une très brève période de temps (~ 50ms).
Heureusement, j'ai rarement besoin de répéter la lettre "A" lors de la frappe, donc même une solution qui utilise quelque chose comme AutoCorrect fonctionnerait pour moi. De préférence, j'aimerais utiliser une solution qui utilise Xbindkeys, car je suis déjà en train d'utiliser ce paquet pour remapper mes boutons de la souris.
Edit: En réponse à un commentaire ci-dessous, voici les sorties de 'Xinput Liste' et 'Xev':
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SINOWEALTH Game Mouse id=9 [slave pointer (2)]
⎜ ↳ EST Gaming keyboard id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ SINOWEALTH Game Mouse Keyboard id=10 [slave keyboard (3)]
↳ EST Gaming keyboard id=11 [slave keyboard (3)]
↳ EST Gaming keyboard id=13 [slave keyboard (3)]
↳ Eee PC WMI hotkeys id=15 [slave keyboard (3)]
↳ EST Gaming keyboard id=16 [slave keyboard (3)]
$ xev
KeyPress event, serial 37, synthetic NO, window 0x7c00001,
root 0x4e5, subw 0x0, time 188722500, (165,-16), root:(4636,676),
state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XmbLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False
KeyRelease event, serial 37, synthetic NO, window 0x7c00001,
root 0x4e5, subw 0x0, time 188722576, (165,-16), root:(4636,676),
state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False
En essayant de mettre en œuvre la suggestion de @RAFFA, j'ai utilisé "3" pour l'ID de clavier et j'ai quitté le code-clés comme 38. Cependant, la clé est encore des doublons.
Essayez ceci dans un fichier de script bash
:
#!/bin/bash
xinput test 11 |
while read pkc
do
if [[ "$pkc" =~ "key press 38" ]]
then
xmodmap -e 'keycode 38 = ';
sleep 0.5;
xmodmap -e 'keycode 38 = a A';
fi
done
Changer le nombre 11
dans xinput test 11
à votre numéro de périphérique de clavier. Vous pouvez trouver ce numéro en exécutant xinput list
. Vous devrez peut-être vérifier si le numéro id
est le bon pour votre clavier. Pour ce faire, choisissez le clavier id
numéros avec slave keyboard
en face d'eux puis vérifiez le id
dans le terminal en exécutant xinput test id_number
et appuyez sur la a sur votre clavier. Si vous obtenez une sortie comme key press 38
Ensuite, c'est le bon numéro id
pour votre clavier actuel et si aucune sortie, continuez à tester les autres id
numéros jusqu'à ce que vous voyiez la sortie.
Changer le NUBER 38
dans "key press 38"
et xmodmap -e 'keycode 38 = ';
et xmodmap -e 'keycode 38 = a A';
au code clé du a clé. Vous pouvez trouver ce numéro en exécutant xev
et en appuyant sur la touche a clé.
Changer le nombre 0.5
dans sleep 0.5;
à la période souhaitée en quelques secondes pour le a clé pour être désactivé.
étapes pour créer et utiliser le fichier de script :
nano ~/no_aa.sh
Copiez et collez le code ci-dessus (((après le modifier) dans l'éditeur.
Enregistrez le fichier de script et quittez l'éditeur en appuyant sur Ctrl + X puis appuyez Y.
Rendre le fichier de script exécutable en exécutant la commande suivante dans le terminal:
chmod +x ~/no_aa.sh
bash ~/no_aa.sh