Parece que deve haver uma solução fácil para esse problema. Eu mesmo estava tentando fazer algo semelhante: executar um programa de captura de tela (flameshot) quando um botão do teclado é pressionado.
No final, a solução que funcionou para mim foi criar um FIFO (named pipe) no meu diretório home chamado .acpi_execute.pipe
. Eu então uso o seguinte script, chamado .acpi_execute
.
#!/usr/bin/bash
while true ; do
while IFS='' read command ; do
$command
done < ~/.acpi_execute.pipe
done
Eu prefiro i3 no GNOME, KDE, etc, devido ao seu desempenho (muito leve) e natureza lado a lado. Na parte inferior do meu arquivo de configuração do i3 ~/.config/i3/config
tenho:
exec ~/.acpi_execute
Isso permite que o script seja executado sempre que o Ambiente Desktop for iniciado (diretamente na máquina ou via conexão VNC remota).
Esteja ciente de que o acima tem implicações de segurança. Por exemplo, se alguém puder escrever para o canal acima, ele poderá executar comandos arbitrários como você . Isso obviamente seria ruim. Dar as permissões de FIFO 600, de sua propriedade, reduz esse risco. Você também pode limitar os comandos possíveis. Ou seja, não execute $command
, mas sim o comando específico que você deseja (por exemplo, flameshot gui
).