Algumas chaves passam pela tela de bloqueio

6

Gostaria que determinadas teclas (principalmente teclas de mídia) chegassem ao meu gerenciador de janelas, mesmo que a minha tela de bloqueio estivesse ativa. Dessa forma, eu poderia controlar meu media player mesmo quando minha tela estiver bloqueada.

Até onde eu posso ver, isso provavelmente só é possível se o bloqueio de tela suportar isso: Uma vez que o bloqueio de tela tenha tirado o ponteiro do teclado da janela raiz, parece não haver maneira de receber eventos de pressionamento de tecla.

Alguém conhece algum armário de tela que suporte tal coisa? Ou qualquer outra maneira de ouvir as teclas pressionadas enquanto a tela de bloqueio está ativa?

Obrigado,

Lukas

    
por Lukas Barth 12.02.2017 / 20:37

2 respostas

1

Eu percebi algo: ouvir teclados raw é possível mesmo quando o foco do teclado é removido por um bloqueador de tela. A desvantagem é que, com pressionamentos de teclas em bruto, você precisa rastrear manualmente o estado das teclas modificadoras, mas isso parece funcionar muito bem.

Eu construí um pequeno daemon de atalho baseado nesta idéia que permite executar comandos mesmo quando a tela está bloqueada. Se alguém estiver interessado, pode encontrá-lo aqui: link

    
por 30.03.2017 / 16:52
0

Se as suas chaves de mídia enviarem eventos da ACPI, você poderá usar acpid para agir sobre elas.

Infelizmente, isso requer mudanças globais de configuração (em vez de por usuário), e pode ser difícil comunicar os eventos para seus aplicativos X11.

Você pode ver quais eventos da ACPI, se houver, são enviados por suas chaves de mídia executando acpi_listen e pressionando essas chaves. Por exemplo, isso aparece em acpi_listen output quando pressiono a tecla "brilho para cima" no meu laptop:

video/brightnessup BRTUP 00000086 00000000

Se as suas chaves enviarem eventos ACPI, você poderá configurar acpid para executar um comando quando eles forem pressionados. Os arquivos de configuração relevantes geralmente são encontrados em /etc/acpi/events/ . Eles podem ter qualquer nome, desde que estejam no diretório correto. Eles se parecem com isso:

event=^video/brightness(up|down) .*[^K]$
action=/etc/acpi/backlight-handler.sh %e

A primeira linha contém event= seguido por uma regex para corresponder aos eventos da ACPI. Se um evento corresponder ao regex, o comando especificado na segunda linha (após action= ) será executado. O %e é expandido para a linha do evento. Neste caso, é usado para passar o evento como argumentos de linha de comando para o script.

Há também um belo artigo sobre acpid no Arch Wiki: link

O próximo passo seria descobrir como controlar o seu media player a partir de um script.

    
por 23.03.2017 / 20:40