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 usar xdotool 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).
xdotool search --class Chrome windowactivate --sync %1 key F5 windowactivate $(xdotool getactivewindow)
Ou com versões mais antigas do xdotool:
xdotool windowactivate $(xdotool search --class Chrome) &&
xdotool key F5 &&
xdotool windowactivate $(xdotool getactivewindow)
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.