Enviando pressionamentos de tecla para a sessão X remota por SSH

12

Então, eu estou sentado em nossa sala de estar em um laptop Ubuntu trabalhando enquanto assisto a uma TV controlada por um HTPC do Ubuntu. Eu tenho um controle remoto IR configurado e posso controlar tudo o que preciso com ele, 99% do tempo.

No entanto, a entrada de texto em um controle remoto não é muito fácil. Não preciso fazer isso com muita frequência, mas, quando o faço, é mais fácil andar 15 pés para conectar um teclado USB e fazê-lo dessa maneira. No entanto ... sou criminal e clinicamente preguiçoso e sinto que caminhar a qualquer distância não é apenas desnecessário, mas também mostra os robôs que eles venceram. Não digo mais!

Posso fazer o SSH no HTPC, bem ... Agora, como envio teclas pressionadas para a sessão X do computador remoto?

Devo mencionar que sei que poderia usar o VNC, mas a TV é 1080p e o laptop é 720p, então isso introduz alguns problemas de dimensionamento. Em nível técnico, prefiro uma solução que me permita transformar temporariamente o laptop em um teclado remoto.

Oli
fonte
Eu sou ainda mais preguiçoso que você. Em vez de configurar um controle remoto IR (eu até comprei um!), Comprei adicionalmente um teclado sem fio de confiança .
madmike

Respostas:

13

Você deve conseguir fazer isso usando o xdotoolcomando, depois de especificar a exibição X apropriada, por exemplo, para simular uma única pressão de “seta para baixo” na janela atualmente ativa

$ DISPLAY=:0 xdotool getactivewindow key Down

Para inserir texto literal, você pode usar, xdotool type <string>por exemplo

$ DISPLAY=:0 xdotool getactivewindow type 'your text here'

O xdotoolpacote deve estar disponível no repositório Universe.

chave de aço
fonte
Não nego que funcione, mas é um pouco miserável se você estiver tentando digitar um local de rede, uma chave de cada vez.
Oli
3
Você pode usar xdotool typepara enviar seqüências completas conforme o tipo - veja minha edição acima.
steeldriver
10

Usando x2xe algum encaminhamento X11, consegui que isso funcionasse.

ssh -X htpc x2x -to :0

A única desvantagem atualmente é que eu tive que me deparar com um TTY para matar o SSH e sair dele. Ainda estou pesquisando como parar quando terminar! Caso contrário, é um método bastante agradável e simples (e atalho de mesa) para transferir entradas de um computador para outro.

Editar: adicionar -nomouseme deu a capacidade de fechar a x2xjanela encaminhada e posso desfocá-la para voltar rapidamente a outras coisas sem precisar desligar a conexão.

Oli
fonte
-nomouseparece não funcionar mais; para mim no ubuntu 16.04 x2x, apenas imprime as informações de uso, não importa onde eu coloquei essa bandeira.
Philipp Ludwig