Envío de pulsaciones de teclas a la sesión X remota a través de SSH

12

Así que estoy sentado en nuestra sala de estar en una computadora portátil Ubuntu trabajando mientras veo un televisor controlado por un HTPC de Ubuntu. Tengo un control remoto IR configurado y puedo controlar todo lo que necesito con él, el 99% del tiempo.

Sin embargo, el ingreso de texto en un control remoto no es muy fácil. No necesito hacerlo muy a menudo, pero cuando lo hago, es más fácil caminar 15 pies para enchufar un teclado USB y hacerlo de esa manera. Sin embargo ... soy criminal y médicamente vago y siento que caminar a cualquier distancia no es solo innecesario, muestra los robots que han ganado. No más que digo!

Puedo SSH en el HTPC bien ... Ahora, ¿cómo envío pulsaciones de teclas a la sesión X de esa computadora remota?

Debo mencionar que sé que podría VNC, pero el televisor es 1080p y la computadora portátil es 720p, por lo que esto presenta algunos problemas de escala. A nivel técnico, preferiría una solución que me diera una manera de convertir temporalmente la computadora portátil en un teclado remoto.

Oli
fuente
Soy incluso más vago que tú. En lugar de configurar un control remoto IR (¡incluso compré uno!), También compré un teclado inalámbrico de confianza .
MadMike

Respuestas:

13

Debería poder hacerlo usando el xdotoolcomando, después de especificar la pantalla X apropiada, por ejemplo, para simular una sola 'flecha hacia abajo', presione en la ventana activa actualmente

$ DISPLAY=:0 xdotool getactivewindow key Down

Para ingresar texto literal, puede usar xdotool type <string>eg

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

El xdotoolpaquete debe estar disponible desde el repositorio de Universe.

conductor de acero
fuente
No niego que funcione, pero es un poco miserable si está tratando de escribir una ubicación de red una clave a la vez.
Oli
3
Puede usar xdotool typepara enviar cadenas completas tal como están escritas: consulte mi edición más arriba.
steeldriver
10

Usando x2xy un reenvío X11, conseguí que esto funcione.

ssh -X htpc x2x -to :0

El único inconveniente actualmente es que tuve que meterme en un TTY para matar a SSH para salir. ¡Todavía estoy buscando cómo dejar de fumar cuando termine! De lo contrario, es un método bastante agradable y simple (y abreviado) para transferir la entrada de una computadora a otra.

Editar: agregar -nomouseme dio la posibilidad de cerrar la x2xventana reenviada y puedo desenfocarla para volver rápidamente a otras cosas sin necesidad de cerrar la conexión.

Oli
fuente
-nomouseya no parece funcionar; para mí bajo ubuntu 16.04 x2x solo imprime la información de uso, sin importar dónde coloque esa bandera.
Philipp Ludwig