miércoles, 7 de diciembre de 2011

Historia triste del día: Qt y XF86XK_TouchpadToggle

Hoy me he dado cuenta que Gnome tiene soporte para XF86XK_TouchpadToggle, es decir, si se pulso la tecla en el teclado que tiene el touchpad con un símbolo de X sobre él, activa/desactiva el touchpad.

Esto es muy útil si eres como yo y conectas/desconectas el ratón de varias veces durante el día.

Que yo sepa, en KDE no tenemos nada como eso, por lo que esta tarde he decidido escribir rápidamente un módulo kded que escuche XF86XK_TouchpadToggle y llame a las funciones correspondientes de XInput2 para cambiar el estado del touchpad.

Se suponía que la parte difícil era la investigación de la parte XInput2 ya que está fuera de mi zona de confort, pero al final no ha resultado ser tan difícil y puedo conseguir el efecto deseado con unas 10 líneas de código.

Después de conseguir las llamadas XInput2 correctas he comenzado a construir el esqueleto de mi módulo kded y cuando iba a registrar el KAction global para escuchar XF86XK_TouchpadToggle me he dado cuenta que Qt no tiene soporte para esta tecla, lo que significa que no puedo utilizar un KAction. Triste :-/

Esto ha significado que me he desviado de mi objetivo original y he escrito un parche para Qt5 para soportar la tecla XF86XK_TouchpadToggle y un par más. Lamentablemente esto no resuelve mi picor inmediato, así que o bien tendré que vivir con él o tendré que tratar de detectar la pulsación de tecla en el nivel de las X, pero no estoy seguro de que eso es algo que quiera hacer: D

Actualización: He tirado por el camino de las X y no ha sido tan doloroso, ahora solo falta que me creen el repositorio git para publicarlo :-)

2 comentarios:

  1. Yo juraría que una version anterior de syinaptiks hacía algo similar a esto que comentas, en cuanto ponías un ratón o escribias en el teclado desconectaba el touchpad pero desgraciadamente en la última version no he encontrado la opción :(

    ResponderEliminar
  2. @cruzki: Bueno, eso que comentas tiene un resultado parecido pero es diferente, es cierto que se puede desactivar el touchpad de forma automática al conectar un ratón externo, pero dado que mi teclado tiene una tecla para hacerlo, lo que quería es darle soporte a eso

    ResponderEliminar