Posso abilitare i tasti di rimbalzo solo per determinati tasti?


8

Sul mio laptop, sto riscontrando un problema persistente in cui i tasti sulla barra spaziatrice vengono ripetuti. Dopo aver subito diverse sostituzioni, oltre a provare più sistemi operativi, ho ritenuto che il problema fosse di natura hardware, non software.

Fortunatamente, ho appreso che Ubuntu aveva una funzione nota come chiavi di rimbalzo, che mi avrebbe permesso di contrastare il problema, poiché i tasti ripetuti sarebbero stati filtrati.

Tuttavia, abilitando la soluzione per tutte le chiavi a volte filtra le chiavi che non voglio essere filtrate. Ad esempio, quando digito ciao , premo spesso le due lettere in rapida successione, tuttavia a volte una delle lettere viene filtrata, il che può essere piuttosto fastidioso. So che non dovrò mai premere due volte la barra spaziatrice in una successione così rapida, e poiché ho solo problemi con la barra spaziatrice, voglio solo abilitare i tasti di rimbalzo sulla barra spaziatrice.

Quindi, è possibile abilitare solo i tasti di rimbalzo sulla barra spaziatrice?


Ripetuto quante volte? Succede sempre?
daltonfury42,

Non succede ogni volta, ma è abbastanza fastidioso. Direi che succede circa tre volte al paragrafo. Può essere molto irritante dover tornare indietro e modificare gli spazi estranei.
Faiz Saleem,

1
Lo spazio è di solito ripetuto circa due volte. Se vedi la fonte del mio post originale, dovresti riuscire a vedere facilmente gli spazi ripetuti, poiché li ho lasciati intenzionalmente.
Faiz Saleem

Ho aggiornato la mia risposta, ma prima di leggerla, leggi questa .
daltonfury42,

Grazie, ci proverò più tardi - Sono stato davvero molto impegnato, quindi non ho avuto occasione.
Faiz Saleem,

Risposte:


3

xset - utility per le preferenze dell'utente per X

r è per controllare autorepeat.

xset -r 10

disabiliterà l'autorepeat per il tasto "1".

xset r 10

abiliterà autorepeat per il tasto "1".

xset r [codice chiave]

nel mio caso il codice chiave per la barra spaziatrice è 65 controlla il tuo con il codice: xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'

Tuttavia, se è necessario modificare la velocità dei tasti, è possibile utilizzare anche il parametro rate.

E aggiungi anche questo comando al file di script di avvio della sessione.


È possibile ottenere l'elenco corrente di quali chiavi sono abilitate autorepeat con xset q. È un array a 256 bit scaricato in esadecimale e abbastanza difficile da leggere.
Meuh

Sicuramente ci proverò. Grazie!
Faiz Saleem,

1
Ha funzionato bene per me. Goditi il ​​rappresentante +100!
Faiz Saleem,

4

Ho trovato una soluzione per te, ma non comporta chiavi di rimbalzo. Quello che faccio qui è disattivare il tasto spazio / tastiera per un breve tempo ogni volta che si preme lo spazio. Quindi ecco qui:

Usiamo xbindkeysper catturare la barra spaziatrice (in questo caso rilascio) e xdotoolper inserire spazi. Installali se non ce l'hai sul tuo sistema:

sudo apt-get install xbindkeys xdotool

Un file di configurazione di xbindkeys dovrebbe essere apparso nella tua cartella home con il nome .xbindkeysrcaltrimenti creane uno come questo:

xbindkeys -d > ~/.xbindkeysrc

Copia lo snippet e incollalo nel tuo file .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

Ecco <kbd-id>l'ID della tastiera che può essere scoperto dal xinputcomando. Ora vuoi configurare xbindkeys per l'avvio ogni volta che avvii il tuo computer.

Apri /etc/rc.locale aggiungi la riga xbindkeysprima exit 0.

Hai fatto. Apri un terminale e digita xbindkeysper avviarlo per ora. Vedi se fa il lavoro. Se non ha catturato i doppi spazi o caratteri dopo che gli spazi sono mancanti, regolare di conseguenza il delaynostro comando ~/.xbindkeysrce riavviare.

Riferimenti:


Ho avuto alcuni problemi con questa risposta. Il comando xinput che hai collegato non disabilita la tastiera, disabilita il touchscreen. Ho provato ad adattare il comando per disabilitare la tastiera, ma neanche quello ha funzionato. Il comando corretto è: xinput float 13 ; sleep .1 ; xinput reattach 13 3che fa il lavoro. Tuttavia, la soluzione stessa non funziona. Quando avvio xbindkeys con questo comando, la barra spaziatrice non entra più in uno spazio. Disabilita brevemente la tastiera, come dovrebbe, ma non viene inserito alcun carattere di spazio. Sto facendo qualcosa di sbagliato?
Faiz Saleem,

Ho anche appena trovato un modo per disabilitare solo la chiave spaziale. Dipende da xmodmap: xmodmap -e 'keycode 65=NoSymbol' ; sleep .1; xmodmap -e 'keycode 65=KP_Space
Faiz Saleem,

@FaizSaleem, mi dispiace per il primo problema, è stato un mio errore. Ho fornito il mio ID tastiera, che è 10. Puoi trovare il tuo digitando xinput. Ma non ne avremo bisogno, hai trovato il modo di disabilitare lo spazio da solo.
daltonfury42,

Per quanto riguarda il secondo problema, ho anche testato solo se la tastiera viene disattivata. Ho provato a inserire manualmente uno spazio usando xdotool getactivewindow key KP_Space, ma non funziona.
daltonfury42,

xdotool key spaceinoltre non funziona e ogni altro metodo che ho provato a inserire uno spazio non è riuscito.
Faiz Saleem,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.