Puis-je activer les touches de rebond pour certaines clés uniquement?

8

Sur mon ordinateur portable, j'ai un problème persistant où les frappes sur la barre d'espace sont répétées. Après avoir subi un certain nombre de remplacements, ainsi que essayé plusieurs systèmes d'exploitation, j'ai jugé que le problème était matériel, pas logiciel.

Heureusement, j'ai appris qu'Ubuntu avait une fonctionnalité connue sous le nom de touches de rebond, qui me permettrait de contrer le problème, car les frappes répétées étaient filtrées.

Cependant, l'activation de la solution pour toutes les clés filtre parfois les clés que je ne souhaite pas filtrer. Par exemple, lorsque je tape bonjour , j'appuie souvent sur les deux l en succession rapide, mais parfois l'un des l est filtré, ce qui peut être assez ennuyeux. Je sais que je n'aurai jamais besoin d'appuyer deux fois sur la barre d'espace aussi rapidement, et comme je n'ai que des problèmes avec la barre d'espace, je veux seulement activer les touches de rebond sur la barre d'espace.

Alors, est-il possible d' activer uniquement les touches de rebond sur la barre d'espace?

Faiz Saleem
la source
Répété combien de fois? Cela arrive-t-il à chaque fois?
daltonfury42
Cela n'arrive pas à chaque fois, mais c'est suffisant pour être assez ennuyeux. Je dirais que cela se produit environ trois fois par paragraphe. Il peut être très irritant de devoir revenir en arrière et de supprimer les espaces étrangers.
Faiz Saleem
1
L'espace est généralement répété environ deux fois. Si vous voyez la source de mon message d'origine, vous devriez facilement pouvoir voir les espaces répétés, car je les ai intentionnellement laissés dedans.
Faiz Saleem
J'ai mis à jour ma réponse, mais avant de la lire, lisez ceci .
daltonfury42
Merci, j'essaierai plus tard - je viens d'être très occupé, donc je n'ai pas eu la chance.
Faiz Saleem

Réponses:

3

xset - utilitaire de préférence utilisateur pour X

r est de contrôler la répétition automatique.

xset -r 10

désactivera la répétition automatique pour la touche "1".

xset r 10

activera la répétition automatique pour la touche "1".

xset r [code clé]

dans mon cas, le code clé pour la barre d'espace est de 65, vérifiez le vôtre avec le code: xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'

Néanmoins, si vous devez modifier la vitesse des touches, vous pouvez également utiliser le paramètre de débit.

Et ajoutez également cette commande à votre fichier de script de démarrage de session.

Tohid Tamboli
la source
Vous pouvez obtenir la liste actuelle des touches pour lesquelles la répétition automatique est activée avec xset q. C'est un tableau de 256 bits vidé en hexadécimal, et assez difficile à lire.
meuh
Je vais certainement être sûr d'essayer. Merci!
Faiz Saleem
1
Ça a bien marché pour moi. Profitez du +100 rep!
Faiz Saleem
4

J'ai trouvé une solution pour vous, mais cela n'implique pas les touches de rebond. Ce que je fais ici, c'est de désactiver la touche espace / clavier pendant un petit moment à chaque pression sur l'espace. Alors voilà:

Nous utilisons xbindkeyspour capturer la barre d'espace (dans ce cas, libérer) et xdotoolpour insérer des espaces. Installez-les si vous ne les avez pas sur votre système:

sudo apt-get install xbindkeys xdotool

Un fichier de configuration xbindkeys aurait dû apparaître dans votre dossier de départ sous le nom .xbindkeysrcsinon créez-en un comme ceci:

xbindkeys -d > ~/.xbindkeysrc

Copiez l'extrait de code et collez-le dans votre fichier .xbindkeysrc.

"xdotool key KP_Space; xinput set-int-prop <kbd-id> "Device Enabled" 8 0; sleep .05 ; xinput set-int-prop <kbd-id> "Device Enabled" 8 1"
     m:0x0 + c:65 + Release
    space

Voici <kbd-id>l'ID du clavier qui peut être trouvé par xinputcommande. Vous souhaitez maintenant configurer xbindkeys pour qu'il démarre à chaque démarrage de votre ordinateur.

Ouvrez /etc/rc.localet ajoutez la ligne xbindkeysavant exit 0.

Vous avez terminé. Ouvrez un terminal et tapez xbindkeyspour le démarrer pour l'instant. Voyez si cela fait le travail. S'il n'a pas attrapé les espaces doubles ou les caractères après la disparition des espaces, ajustez le delaydans notre commande en ~/.xbindkeysrcconséquence et redémarrez.

Références:

daltonfury42
la source
J'ai eu quelques problèmes avec cette réponse. La commande xinput que vous avez liée ne désactive pas le clavier, elle désactive l'écran tactile. J'ai essayé d'adapter la commande pour désactiver le clavier, mais cela n'a pas fonctionné non plus. La commande correcte est: xinput float 13 ; sleep .1 ; xinput reattach 13 3qui fait le travail. Cependant, la solution elle-même ne fonctionne pas. Lorsque je démarre xbindkeys avec cette commande, la barre d'espace n'entre plus dans un espace. Il désactive brièvement le clavier, comme il se doit, mais aucun caractère d'espace n'est entré. Est-ce que je fais quelque chose de mal?
Faiz Saleem
Je viens également de trouver un moyen de désactiver la touche espace uniquement. Cela dépend de xmodmap: xmodmap -e 'keycode 65=NoSymbol' ; sleep .1; xmodmap -e 'keycode 65=KP_Space
Faiz Saleem
@FaizSaleem, je suis désolé pour le premier problème, c'était mon erreur. J'ai donné mon identifiant de clavier, qui est 10. Vous pouvez trouver le vôtre en tapant xinput. Mais nous n'en aurons pas besoin, vous avez trouvé un moyen de désactiver l'espace seul.
daltonfury42
À propos du deuxième problème, je n'ai également testé que si le clavier est désactivé. J'ai essayé d'insérer un espace manuellement à l'aide xdotool getactivewindow key KP_Space, mais cela ne fonctionne pas.
daltonfury42
xdotool key spacene fonctionne pas non plus, et toutes les autres méthodes que j'ai essayées pour insérer un espace ont échoué.
Faiz Saleem