Considere una aplicación en la que sea conveniente tomar el teclado cuando esté enfocado para capturar todos los comandos del administrador de ventanas (Alt + F4 y otras cosas) para su procesamiento. Ahora bien, esto tiene la desventaja de que el usuario no tiene forma de cambiar a otra aplicación o escritorio virtual a través del teclado cuando se agarra el teclado. Me gustaría tener una lista blanca definida por el usuario de la combinación de teclas (por ejemplo, las combinaciones de teclas para conmutar escritorios virtuales) que están excluidas de la captura.Excluyendo algunas teclas de XGrabKeyboard
Puedo pensar en dos posibles enfoques. Cuando llega un evento de clave incluido en la lista blanca, ya sea
- De alguna manera, solicite a X que continúe con el procesamiento como de costumbre. Esto suena como una forma más natural de hacerlo, pero no puedo encontrar una manera de hacerlo, o
- Desenganche el teclado y vuelva a enviar el evento a mano al administrador de ventanas para su procesamiento, sin embargo, no lo sé dónde enviarlo (¿la ventana raíz?) o si eso funcionaría.
¿Alguien puede completar los espacios en blanco? ¿Cualquier otra sugerencia?
Si no hay forma de excluir las llaves de un gancho, supongo que tendré que conformarme con tener una "tecla de escape" que desabroche el teclado cuando se presione. Sin embargo, el usuario tendrá que presionar tanto ese como el comando del administrador de ventanas, lo cual no es tan bueno.
Tenía miedo de recibir una respuesta como esta. Estoy seguro de que hubiera visto un software que hace esto si es posible.Sin embargo, gracias por apuntarme hacia XInput 2, lo estoy viendo ahora mismo y parece tener nuevas formas de capturar dispositivos de entrada. Voy a ejecutar algunas pruebas para ver si esto hace posible –
Resultó que algo como esto es "posiblemente programado para XI2.1", que ni siquiera parece existir todavía según Google. Sin embargo, las nuevas sugerencias de WM no suenan como una mala idea, así que comencé a debatir sobre la lista de wm-spec de freedesktop.org. http://mail.gnome.org/archives/wm-spec-list/2010-September/thread.html –