xvkbd não está funcionando em aplicativos GTK3

3

Eu tenho um par de botões de mouse mapeados (Fluxbox) para executar comandos xvkbd, para Enter (\ r) e Ctrl + U (\ Cu), que é muito útil.

Funciona em terminais e na maioria dos aplicativos, mas não em aplicativos GTK3, tornou-se mais notável agora que o Firefox está migrando para ele também.

Eu testei isso fazendo em um terminal:

sleep 3 && xvkbd -xsendevent -text "\Cu"

E rapidamente colocando o foco em um campo de texto para um aplicativo GTK2, e funciona. Quando eu faço isso em um aplicativo GTK3 isso não acontece.

O resto das ligações do mouse funcionam bem, então o GTK está reconhecendo que a tecla do mouse pressiona, mas ignorando a instrução xvkbd -xsendevent como comprovado pelo teste acima.

Alguma ideia?

Tudo que encontrei foi este e-mail da lista de discussão de 2012 sem respostas e sem muita informação: link

    
por Jjdelc 15.08.2015 / 02:09

2 respostas

3

Minha solução foi mudar de ferramentas, xdotool funciona bem. Isso parece porque o GTK3 mudou para o X Input 2.0, o qual o xvkbd não suporta.

Minhas novas combinações de teclas são:

xdotool key "Return"
xdotool key "Control_L+u"

Que substituem:

xvkbd -xsendevent -text "\r"
xvkbd -xsendevent -text "\Cu"
    
por Jjdelc 16.08.2015 / 07:31
0

Tente remover a opção -xsendevent.

xvkbd usa XSendEvent () para enviar eventos quando -xsendevent é especificado, mas muitos aplicativos, provavelmente incluindo aplicações gtk3, irão ignorar esses eventos.

O xvkbd usará um outro mecanismo, a extensão XTEST, quando o -xsendevent não for especificado sob condições que o xvkbd seja compilado com o suporte a XTEST habilitado e o servidor X também esteja habilitado para XTEST.

    
por Tom 20.09.2015 / 06:59

Tags