¿Puedo habilitar Bounce Keys solo para ciertas teclas?

8

En mi computadora portátil, tengo un problema persistente en el que se repiten las teclas en la barra espaciadora. Después de haber pasado por varios reemplazos, además de probar varios sistemas operativos, he juzgado que el problema es de hardware, no de software.

Afortunadamente, aprendí que Ubuntu tenía una característica conocida como teclas de rebote, que me permitiría contrarrestar el problema, ya que las pulsaciones repetidas se filtrarían.

Sin embargo, habilitar la solución para todas las claves a veces filtra las claves que no quiero que se filtren. Por ejemplo, cuando escribo hola , a menudo presiono los dos ls en rápida sucesión, sin embargo, a veces uno de los ls se filtra, lo que puede ser bastante molesto. Sé que nunca necesitaré presionar la barra espaciadora dos veces en una sucesión tan rápida, y dado que solo tengo problemas con la barra espaciadora, solo quiero habilitar las teclas de rebote en la barra espaciadora.

Entonces, ¿es posible habilitar solo las teclas de rebote en la barra espaciadora?

Faiz Saleem
fuente
Repite cuántas veces? ¿Sucede cada vez?
daltonfury42
No sucede siempre, pero es suficiente para ser bastante molesto. Yo diría que ocurre alrededor de tres veces por párrafo. Puede ser muy irritante tener que regresar y editar los espacios extraños.
Faiz Saleem
1
El espacio generalmente se repite aproximadamente dos veces. Si ves la fuente de mi publicación original, deberías poder ver fácilmente los espacios repetidos, ya que los he dejado intencionalmente.
Faiz Saleem
He actualizado mi respuesta, pero antes de leerla, lea esto .
daltonfury42
Gracias, lo intentaré más tarde. He estado muy ocupado, así que no he tenido la oportunidad.
Faiz Saleem

Respuestas:

3

xset: utilidad de preferencia de usuario para X

r es para controlar la repetición automática.

xset -r 10

desactivará la repetición automática para la tecla "1".

xset r 10

habilitará la repetición automática para la tecla "1".

xset r [código clave]

en mi caso, el código de la barra espaciadora es 65, compruebe el suyo con el código: xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'

Aún así, si necesita cambiar la velocidad de las teclas, también puede usar el parámetro de velocidad.

Y también agregue este comando al archivo de script de inicio de sesión.

Tohid Tamboli
fuente
Puede obtener la lista actual de qué teclas tienen habilitada la repetición automática xset q. Es una matriz de 256 bits volcada en hexadecimal, y bastante difícil de leer.
meuh
Definitivamente me aseguraré de probar esto. ¡Gracias!
Faiz Saleem
1
Funcionó bien para mí. ¡Disfruta del +100 rep!
Faiz Saleem
4

He encontrado una solución para usted, pero no involucra Bounce Keys. Lo que hago aquí es desactivar la tecla de espacio / teclado por un tiempo cada vez que se presiona el espacio. Así que aquí va:

Usamos xbindkeyspara capturar la barra espaciadora y presionar (en este caso, liberar) e xdotoolinsertar espacios. Instálelos si no lo tiene en su sistema:

sudo apt-get install xbindkeys xdotool

Un archivo de configuración de xbindkeys debería haber aparecido en su carpeta de inicio con el nombre; de ​​lo .xbindkeysrccontrario, cree uno como este:

xbindkeys -d > ~/.xbindkeysrc

Copie el fragmento y péguelo en su archivo .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

Aquí <kbd-id>está la identificación del teclado que se puede encontrar por xinputcomando. Ahora desea configurar xbindkeys para que se inicie cada vez que inicie su computadora.

Abra /etc/rc.localy agregue la línea xbindkeysantes exit 0.

Estás listo. Abra una terminal y escriba xbindkeyspara iniciarla por ahora. A ver si hace el trabajo. Si no capturó los espacios dobles o los caracteres después de que faltan espacios, ajuste el delaycomando en nuestro comando en ~/.xbindkeysrcconsecuencia y reinicie.

Referencias

daltonfury42
fuente
Tuve algunos problemas con esta respuesta. El comando xinput que vinculó no deshabilita el teclado, deshabilita la pantalla táctil. Traté de adaptar el comando para deshabilitar el teclado, pero tampoco funcionó. El comando correcto es: xinput float 13 ; sleep .1 ; xinput reattach 13 3, que hace el trabajo. Sin embargo, la solución en sí no funciona. Cuando comienzo xbindkeys con este comando, la barra espaciadora ya no entra en un espacio. Deshabilita el teclado brevemente, como debería, pero no se ingresa ningún carácter de espacio. ¿Estoy haciendo algo mal?
Faiz Saleem
También acabo de encontrar una manera de desactivar solo la tecla de espacio. Depende de xmodmap: xmodmap -e 'keycode 65=NoSymbol' ; sleep .1; xmodmap -e 'keycode 65=KP_Space
Faiz Saleem
@FaizSaleem, lamento el primer problema, fue mi error. Di la identificación de mi teclado, que es 10. Puede encontrar la suya escribiendo xinput. Pero no necesitaremos eso, has encontrado una manera de desactivar el espacio solo.
daltonfury42
Sobre el segundo problema, solo probé solo si el teclado se está desactivando. Intenté insertar un espacio manualmente usando xdotool getactivewindow key KP_Space, pero no funciona.
daltonfury42
xdotool key spacetampoco funciona, y todos los demás métodos que he intentado insertar un espacio han fallado.
Faiz Saleem