Envío de entrada de teclado desde Windows a Ubuntu en la red local

Envío de entrada de teclado desde Windows a Ubuntu en la red local

Tengo dos máquinas en una red local. Uno es Windows 10 y el otro es Ubuntu 16.04.

La máquina Linux no es mi computadora principal y se encuentra al otro lado de mi oficina, con el monitor frente a mí para poder reproducir Plex o Netflix, etc.

Quiero saber si hay algún software que pueda usar para simular la entrada del teclado en la máquina Linux, enviando la entrada desde la máquina Windows. De esta manera puedo navegar por Internet en la otra computadora (seleccionar una nueva canción, video, etc.), sin tener que levantarme físicamente e ir a la otra máquina.

Ya tengo SSH configurado entre los dos si eso ayuda.

Esperaba una herramienta de línea de comando simple que hiciera algo como:

C:/Users/Luke> sendinput 192.168.0.10 "keycode here"

Para poder crear mis propios scripts para automatizar cosas. Sin embargo, tampoco estoy en contra de una aplicación basada en GUI. Quiero evitar la sobrecarga de utilizar una aplicación de visualización de escritorio remoto.

Cualquier consejo o herramienta que pueda sugerir sería genial. Supongo que necesitaría poder enviar combinaciones de teclas para tener acceso completo a los atajos de teclado disponibles en cualquier software que esté usando en la máquina Ubuntu.

Respuesta1

Deberías instalar xdotool en ubuntu y luego usarlo a través de ssh:

Con ssh de cygwin:

ssh [email protected] /bin/dash -c  "'DISPLAY=:0 xdotool key Page_Up'"

Las pulsaciones de teclas son el nombre de las teclas enkeysymdef.h, donde se elimina el "XK_KP_" inicial: https://cgit.freedesktop.org/xorg/proto/x11proto/plain/keysymdef.h

También puedes enviar una clave y varios modificadores: "Alt+a"

Tenga en cuenta que ssh está "comiendo" un nivel de texto escapado

También puedes escribir texto, hacer clic, mover el mois, levantar ventanas, etc...

Ejemplo de texto (en dos líneas para enviar una devolución):

ssh [email protected] /bin/dash -c "'DISPLAY=:0 xdotool type \"echo hello
\"'"

Esto es todo lo que puedes hacer:

Usage: xdotool <cmd> <args>
Available commands:
  getactivewindow
  getwindowfocus
  getwindowpid
  search
  help
  version
  click
  getmouselocation
  key
  keydown
  keyup
  mousedown
  mousemove
  mousemove_relative
  mouseup
  type
  windowactivate
  windowfocus
  windowmap
  windowmove
  windowraise
  windowsize
  windowunmap
  set_window
  set_num_desktops
  get_num_desktops
  set_desktop
  get_desktop
  set_desktop_for_window
  get_desktop_for_window

Respuesta2

Si desea navegar por Internet en la máquina remota, probablemente no solo desee compartir el teclado, sino que también desee compartir la pantalla para poder ver lo que está haciendo.

Una forma de hacerlo esVNC, para obtener instrucciones sobre cómo configurar esto con Windows/Ubuntu, consulte, por ejemploaquí(o google).

Si tiene una conexión ssh, puede automatizar prácticamente todo en la máquina remota. Además de ejecutar programas que controlan otros programas, también puede inyectar entradas del dispositivo en varios niveles. Una forma es escribir en /dev/input/event*los dispositivos directamente en el formato correcto, consulte, por ejemploaquí(La respuesta se encuentra más abajo, también funciona para teclados o cualquier otro dispositivo de entrada). Otra forma es inyectar eventos X (teclado y mouse), usando xdotool, xneeo xmacroprogramas similares. Si desea hacer eso, debe configurar DISPLAYcorrectamente en su shell remoto (generalmente en :0), y también debe asegurarse de que la autorización X funcione (no estoy seguro de cómo está configurado de manera predeterminada en Ubuntu, en general ~/.Xauthoritydebe contener un cookie válida, emitida por el administrador de visualización).

Respuesta3

si puedes ver el cursor a esa distancia, usa synergy, si no, usa vnc.

información relacionada