Excluyendo algunas claves de XGrabKeyboard

Considere una aplicación en la que es deseable tomar el teclado cuando está enfocado para capturar todos los comandos del administrador de ventanas (Alt + F4 y demás) para su procesamiento. Ahora, esto tiene el inconveniente 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 de combinación de teclas definida por el usuario (por ejemplo, las combinaciones de teclas para cambiar los escritorios virtuales) que están excluidas de la captura.

Puedo pensar en dos posibles enfoques. Cuando llega un evento clave en la lista blanca,

De alguna manera, dile a X que continúe procesándolo como de costumbre. Esto suena como una forma más natural de hacerlo, pero no puedo encontrar una manera de hacerlo, oDescuelgue el teclado y vuelva a enviar el evento a mano al administrador de ventanas para su procesamiento, sin embargo, no sé dónde enviarlo (¿la ventana raíz?) O si eso funcionaría.

¿Alguien puede llenar los espacios en blanco en esos? ¿Cualquier otra sugerencia?

Si no hay forma de excluir las teclas de un agarre, supongo que tendré que conformarme con tener una "tecla de escape" que desarma el teclado cuando se presiona. Sin embargo, el usuario tendrá que presionar tanto eso como el comando del administrador de ventanas, lo que no es tan bueno.

Respuestas a la pregunta(1)

Su respuesta a la pregunta