Estou usando um Raspberry Pi em combinação com o Chromium (modo quiosque) para mostrar algumas estatísticas. O Pi não possui um teclado conectado, então procurei uma solução para enviar pressionamentos de tecla do terminal para o processo Chromium (guia) . A entrada normal funciona, mas como envio algo como F5
(uma chave especial: atualização do navegador) por meio desta solução?
# pidof chromium
20809 20790 20788 20786 20783
# echo 'some text' > /proc/20809/fd/0
Respostas:
Programas gráficos não ler a partir de sua entrada padrão, eles obter a sua entrada a partir do servidor X . Existem ferramentas para injetar um pressionamento de tecla em uma janela. O xdotool é bastante comum e conveniente.
Você precisará encontrar o ID da janela para o qual deseja enviar o pressionamento de tecla. Você pode fazer isso com o xdotool.
xdotool search --class Chrome
retorna a lista de IDs de janelas de todas as janelas do Chrome. Se isso retornar mais de um, você precisará escolher o que deseja. Você pode usarxdotool search --name
para corresponder no título em vez da classe. Você também pode analisar a saída do wmctrl e extrair o ID da janela desejada.Depois de encontrar o ID da janela certa, você pode ligar
xdotool
para inserir uma tecla. Infelizmente, muitos aplicativos rejeitam eventos sintéticos, ou seja, pressionamentos de tecla e eventos de mouse enviados por outro aplicativo. É o caso das versões atuais do Chrome. É possível injetar um pressionamento de tecla de outro aplicativo por um mecanismo diferente, mas isso requer que a janela seja focada. Você pode fazer tudo isso com o xdotool, mas isso fará com que o foco passe rapidamente para a janela e para trás do Chrome. O seguinte snippet é enviado F5para a primeira janela do Chrome (em uma ordem um tanto arbitrária).Ou com versões mais antigas do xdotool:
Lembre-se de que isso é enviado F5para essa janela e cabe ao programa decidir o que fazer com ela. No Chrome, isso recarrega a guia atual.
fonte
--windowid
bandeira está agora--window
(o comando o avisa tanto) #--title
opção é agora--name
(o comando fielmente adverte tanto)xdotool search --class Chrome key F5
A solução sugerida acima usou o xdotool como este
o que não funcionou para mim. Depois de algumas experiências, cheguei a
Uma vez, que parecia estar funcionando, defini alguns scripts e atualizei meu arquivo .lircrc como mostrado aqui:
http://pcfellow.com/ClementineRemote.html
fonte
Eu tive um caso de uso semelhante em um Raspberry Pi executando o Raspbian Wheezy. Eu precisava girar as guias no Chrome usando o modo quiosque (infelizmente, instalar uma extensão para fazer isso no Chrome antigo não é mais razoável). O exemplo da resposta aceita tem alguns erros de digitação ou simplesmente não funciona com minhas versões de software, eis o que funciona para mim:
fonte
Se você estiver usando o Chromium para exibir uma página da web personalizada e desejar que ela seja atualizada regularmente, poderá adicionar a seguinte tag:
para atualizá-lo automaticamente a cada 5 segundos (você pode configurá-lo mais curto ou mais, se desejar).
fonte
Historicamente, usei o Auto Hot Key para fazer coisas como enviar pressionamentos de tecla, mas isso não está disponível no Linux, mas uma rápida pesquisa no Google revela que existe o IronAHK ( http://www.ironahk.net/ ). documentação disponível ainda, mas pode funcionar.
fonte