Excluindo algumas chaves do XGrabKeyboard

Considere um aplicativo em que é desejável pegar o teclado quando focado para capturar todos os comandos do gerenciador de janelas (Alt + F4 e outros enfeites) para processamento. Agora, isso tem a desvantagem de o usuário não ter como alternar para outro aplicativo ou área de trabalho virtual através do teclado quando o teclado é agarrado. Eu gostaria de ter uma lista de permissões definida pelo usuário da combinação de teclas (por exemplo, as combinações de teclas para alternar áreas de trabalho virtuais) que são excluídas da captura.

Eu posso pensar em duas abordagens possíveis. Quando chega um evento-chave na lista de permissões,

De alguma forma, diga ao X para continuar processando-o normalmente. Parece uma maneira mais natural de fazer isso, mas não consigo encontrar uma maneira de fazer isso, ouDesagrupe o teclado e reenvie o evento manualmente para o gerenciador de janelas para processamento, no entanto não sei para onde enviá-lo (a janela raiz?) Ou se isso funcionaria.

Alguém pode preencher os espaços em branco sobre eles? Alguma outra sugestão?

Se não há como excluir teclas de uma vez, acho que vou ter que aceitar uma "tecla de escape" que desamarra o teclado quando pressionada. O usuário terá que pressionar isso e, em seguida, o comando do gerenciador de janelas, o que não é tão bom.

questionAnswers(1)

yourAnswerToTheQuestion