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
, xmacro
ou programas similares. Se você quiser fazer isso, você precisa definir o DISPLAY
em 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 ~/.Xauthority
deve 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.