Enviando entrada de teclado do Windows para o Ubuntu na rede local

Enviando entrada de teclado do Windows para o Ubuntu na rede local

Eu tenho duas máquinas em uma rede local. Um é o Windows 10, o outro é o Ubuntu 16.04.

A máquina Linux não é meu computador principal e fica do outro lado do meu escritório, com o monitor voltado para mim para que eu possa jogar Plex ou Netflix etc.

Quero saber se existe algum software que eu possa usar para simular a entrada do teclado na máquina Linux, enviando a entrada da máquina Windows. Desta forma posso navegar na internet no outro computador (selecionar uma nova música, ou vídeo etc.), sem ter que me levantar fisicamente e ir até a outra máquina.

Já tenho o SSH configurado entre os dois, se isso ajudar.

Eu esperava uma ferramenta simples de linha de comando que fizesse algo como:

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

Para que eu possa construir meus próprios scripts para automatizar as coisas. No entanto, também não sou contra um aplicativo baseado em GUI. Quero evitar a sobrecarga de usar um aplicativo de visualização remota da área de trabalho.

Qualquer conselho ou ferramenta que você possa sugerir seria ótimo. Suponho que precisaria enviar combinações de teclas, para ter acesso total aos atalhos de teclado disponíveis em qualquer software que esteja usando na máquina Ubuntu.

Responder1

Você deve instalar o xdotool no Ubuntu e usá-lo através do ssh:

Com ssh do cygwin:

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

As teclas digitadas são os nomes das chaves em keysymdef.h, onde você remove o "XK_KP_" inicial: https://cgit.freedesktop.org/xorg/proto/x11proto/plain/keysymdef.h

Você também pode enviar uma tecla e vários modificadores: "Alt+a"

Observe que o ssh está "comendo" um nível de texto escapado

Você também pode digitar texto, clicar, mover o mouse, levantar janelas, etc...

Exemplo de texto (em duas linhas para enviar uma devolução):

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

Aqui está tudo o que você pode fazer:

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

Responder2

Se você deseja navegar na Internet na máquina remota, provavelmente não deseja apenas compartilhar o teclado, mas também a tela para poder ver o que está fazendo.

Uma maneira de fazer isso éVNC, para obter instruções sobre como configurar isso com Windows/Ubuntu, consulte, por exemploaqui(ou google).

Se você tiver uma conexão ssh, poderá automatizar praticamente tudo na máquina remota. Além de executar programas que controlam outros programas, você também pode injetar entradas de dispositivos em vários níveis. Uma maneira é escrever /dev/input/event*diretamente nos dispositivos no formato correto, veja, por exemploaqui(respostas mais abaixo, também funcionam para teclados ou qualquer outro dispositivo de entrada). Outra maneira é injetar eventos X (teclado e mouse), usando xdotool, xnee, xmacroou programas similares. Se você quiser fazer isso, você precisa definir o DISPLAYem seu shell remoto corretamente (geralmente para :0) e também deve certificar-se de que a autorização X funciona (não tenho certeza de como isso é configurado por padrão no Ubuntu, em geral ~/.Xauthoritydeve conter um cookie válido, que é emitido pelo gerenciador de exibição).

Responder3

se você consegue ver o cursor a essa distância, use sinergia; caso contrário, use vnc.

informação relacionada