Kann ich Bounce-Schlüssel nur für bestimmte Schlüssel aktivieren?

8

Auf meinem Laptop tritt ein anhaltendes Problem auf, bei dem Tastenanschläge auf der Leertaste wiederholt werden. Nachdem ich eine Reihe von Ersetzungen durchlaufen und mehrere Betriebssysteme ausprobiert habe, habe ich festgestellt, dass es sich um ein Hardwareproblem handelt, nicht um ein Softwareproblem.

Glücklicherweise erfuhr ich, dass Ubuntu eine Funktion namens Bounce-Keys hatte, mit der ich dem Problem entgegenwirken konnte, da wiederholte Tastenanschläge gefiltert wurden.

Wenn Sie jedoch die Lösung für alle Schlüssel aktivieren, werden manchmal Schlüssel gefiltert, die nicht gefiltert werden sollen. Wenn ich zum Beispiel Hallo tippe , drücke ich oft schnell hintereinander die beiden Ls , aber manchmal wird eines der Ls gefiltert, was ziemlich ärgerlich sein kann. Ich weiß, dass ich die Leertaste niemals zweimal so schnell hintereinander drücken muss, und da ich nur Probleme mit der Leertaste habe, möchte ich nur die Bounce-Tasten auf der Leertaste aktivieren.

Ist es also möglich, nur Bounce-Tasten in der Leertaste zu aktivieren?

Faiz Saleem
quelle
Wie oft wiederholt? Kommt es jedes Mal vor?
Daltonfury42
Es passiert nicht jedes Mal, aber es reicht aus, um ziemlich nervig zu sein. Ich würde sagen, dass es ungefähr dreimal pro Absatz passiert. Es kann sehr irritierend sein, zurückgehen und die fremden Räume herausarbeiten zu müssen.
Faiz Saleem
1
Der Raum wird normalerweise ungefähr zweimal wiederholt. Wenn Sie die Quelle meines ursprünglichen Beitrags sehen, sollten Sie die wiederholten Leerzeichen leicht sehen können, da ich sie absichtlich belassen habe.
Faiz Saleem
Ich habe meine Antwort aktualisiert, aber bevor es lesen durch Lesen dieses .
Daltonfury42
Danke, werde es später versuchen - ich war gerade sehr beschäftigt, hatte also keine Chance.
Faiz Saleem

Antworten:

3

xset - Dienstprogramm für Benutzereinstellungen für X.

r dient zur Steuerung der automatischen Wiederholung.

xset -r 10

deaktiviert die automatische Wiederholung für die Taste "1".

xset r 10

aktiviert die automatische Wiederholung für die Taste "1".

xset r [Schlüsselcode]

In meinem Fall lautet der Schlüsselcode für die Leertaste 65. Überprüfen Sie Ihren Code mit dem folgenden Code: xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'

Wenn Sie jedoch die Geschwindigkeit der Tasten ändern müssen, können Sie auch den Ratenparameter verwenden.

Fügen Sie diesen Befehl auch zu Ihrer Sitzungsstart-Skriptdatei hinzu.

Tohid Tamboli
quelle
Sie können die aktuelle Liste der Schlüssel abrufen, für die die automatische Wiederholung aktiviert ist xset q. Es ist ein 256-Bit-Array, das hexadezimal ausgegeben wird und ziemlich schwer zu lesen ist.
Meuh
Ich werde es auf jeden Fall versuchen. Vielen Dank!
Faiz Saleem
Hat gut für mich funktioniert. Viel Spaß mit den +100 Wiederholungen!
Faiz Saleem
4

Ich habe eine Lösung für Sie gefunden, aber es geht nicht um Bounce Keys. Was ich hier mache, ist, die Leertaste / Tastatur bei jedem Drücken der Leertaste für eine kurze Zeit zu deaktivieren. Also los geht's:

Wir verwenden xbindkeys, um die Leertaste zu drücken (in diesem Fall Release) und xdotoolum Leerzeichen einzufügen. Installieren Sie sie, wenn Sie sie nicht auf Ihrem System haben:

sudo apt-get install xbindkeys xdotool

Eine xbindkeys-Konfigurationsdatei sollte unter dem Namen in Ihrem Home-Ordner angezeigt worden sein. Andernfalls erstellen Sie eine solche .xbindkeysrc:

xbindkeys -d > ~/.xbindkeysrc

Kopieren Sie das Snippet und fügen Sie es in Ihre .xbindkeysrc-Datei ein.

"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

Hier <kbd-id>ist die Tastatur-ID, die per xinputBefehl ermittelt werden kann. Jetzt möchten Sie xbindkeys so konfigurieren, dass sie bei jedem Start Ihres Computers gestartet werden.

Öffnen /etc/rc.localund fügen Sie die Zeile xbindkeysvor exit 0.

Du bist fertig. Öffnen Sie ein Terminal und geben Sie es ein xbindkeys, um es vorerst zu starten. Sehen Sie, ob es den Job macht. Wenn die doppelten Leerzeichen oder Zeichen nach dem Fehlen von Leerzeichen nicht abgefangen wurden, passen Sie das delayin unserem Befehl ~/.xbindkeysrcentsprechend an und starten Sie es neu.

Verweise:

daltonfury42
quelle
Ich hatte einige Probleme mit dieser Antwort. Der von Ihnen verknüpfte Befehl xinput deaktiviert nicht die Tastatur, sondern den Touchscreen. Ich habe versucht, den Befehl anzupassen, um die Tastatur zu deaktivieren, aber das hat auch nicht funktioniert. Der richtige Befehl lautet : xinput float 13 ; sleep .1 ; xinput reattach 13 3, was funktioniert . Die Lösung selbst funktioniert jedoch nicht. Wenn ich xbindkeys mit diesem Befehl starte, gibt die Leertaste kein Leerzeichen mehr ein. Die Tastatur wird zwar kurzzeitig deaktiviert, es wird jedoch kein Leerzeichen eingegeben. Mache ich etwas falsch?
Faiz Saleem
Ich habe auch gerade eine Möglichkeit gefunden, nur die Leertaste zu deaktivieren. Es hängt von xmodmap ab: xmodmap -e 'keycode 65=NoSymbol' ; sleep .1; xmodmap -e 'keycode 65=KP_Space
Faiz Saleem
@FaizSaleem, es tut mir leid wegen der ersten Ausgabe, es war mein Fehler. Ich habe meine Tastatur-ID angegeben, die 10 ist. Sie können Ihre finden, indem Sie tippen xinput. Aber das brauchen wir nicht, Sie haben einen Weg gefunden, den Speicherplatz allein zu deaktivieren.
Daltonfury42
Über das zweite Problem habe ich auch nur getestet, ob die Tastatur deaktiviert wird. Ich habe versucht, ein Leerzeichen manuell mit einzufügen xdotool getactivewindow key KP_Space, aber es funktioniert nicht.
Daltonfury42
xdotool key spacefunktioniert auch nicht und jede andere Methode, die ich versucht habe, ein Leerzeichen einzufügen, ist fehlgeschlagen.
Faiz Saleem