BadAccess em X_GrabKeys ao usar xbindkeys

1

Eu escrevi dois scripts personalizados para clarear / escurecer minha tela e quero ligá-los às minhas chaves F9 e F10 . Eu os coloco em /opt/bin e usei sudo chown root:root script e sudo chmod 755 script em ambos e eles funcionam quando chamados do terminal.

Quando eu agora tento executar xbindkeys -v , com essas linhas adicionadas a ~/.xbindkeysrc

"/opt/bin/dim_screen.sh"
    Control + c:75

"/opt/bin/brighten_screen.sh"
    Control + c:76

isso me dá essa mensagem de erro:

displayName = :0.0
rc file = /home/pi/.xbindkeysrc
rc guile file = /home/pi/.xbindkeysrc.scm
getting rc guile file /home/pi/.xbindkeysrc.scm.
WARNING : /home/pi/.xbindkeysrc.scm not found or reading not allowed.
2 keys in /home/pi/.xbindkeysrc

min_keycode=8     max_keycode=255 (ie: know keycodes)
"/opt/bin/dim_screen.sh"
    m:0x4 + c:75
    Control + F9
"/opt/bin/brighten_screen.sh"
    m:0x4 + c:76
X Error of failed request:  BadAccess (attempt to access private resource denied)
  Major opcode of failed request:  33 (X_GrabKey)
  Serial number of failed request:  17
  Current serial number in output stream:  21

No começo eu pensei que é sobre as permissões de arquivo dos scripts, assim eu adicionei

    ALL ALL= NOPASSWD: /opt/bin/brighten_screen.sh
    ALL ALL= NOPASSWD: /opt/bin/dim_screen.sh

para o meu /etc/sudoers . Mas o erro persistiu, então eu li novamente e agora depois de ler sobre xgrabkeys eu acho que os principais sinais já estão em usar por algum outro programa quando xbindkeys quiser lê-los, para que não possa acessá-los. Também não funciona quando não uso as teclas de função.

Como pode ser que F9 e F10 sejam reservados para propósitos internos, mudei o mapeamento xmodmap de F9 para F13 e de F10 para F14

Eu poderia temporariamente fazê-lo funcionar, seguindo as instruções de Vincent Yu na Questão "Usando xbindkeys para ligar a meta key (também conhecida como super key / tecla Windows) para clicar com o botão esquerdo e permitir arrastar e soltar" (notei o que ele disse sobre as mudanças não serem persistentes através de sessões) mas agora, após a reinicialização, retorna novamente o mesmo erro (com F9 substituído por F13 ), embora eu tenha executado xmodmap -e 'keycode 75 = F13' e xmodmap -e 'keycode 76 = F14' respectivamente e alterado meu ~/.Xmodmap

Eu não sei como lidar com isso ou descobrir o que bloqueia os xbindkeys de usar as chaves. O Google não me deu resultados úteis e uma olhada nas postagens no unix.SE (com exceção da mencionada acima) também não ajudou.

Eu uso o núcleo Raspbian Jesse com lxde se isso for relevante.

    
por Fynn 09.12.2016 / 20:04

1 resposta

0

Eu tive um problema parecido, o google me levou a link , que basicamente diz para adicionar o modificador específico de xbindkeys release à ligação de chave para que o script seja acionado em" keyup "na linguagem javascript. Fazer isso corrige o problema para mim.

Então, para o seu caso, o seguinte deve funcionar:

"/opt/bin/dim_screen.sh"
    Control + c:75 + release

"/opt/bin/brighten_screen.sh"
    Control + c:76 + release
    
por 02.03.2017 / 00:48