Отправка клавиатурного ввода из Windows в Ubuntu по локальной сети

Отправка клавиатурного ввода из Windows в Ubuntu по локальной сети

У меня две машины в локальной сети. Одна с Windows 10, другая с Ubuntu 16.04.

Машина с Linux не является моим основным компьютером и стоит в другой части офиса, монитором к себе, чтобы я мог играть в Plex или Netflix и т. д.

Я хочу узнать, есть ли программное обеспечение, которое я могу использовать для имитации ввода с клавиатуры на машине Linux, отправляя ввод с машины Windows. Таким образом я могу просматривать интернет на другом компьютере (выбирать новую песню или видео и т. д.), не вставая физически и не переходя к другой машине.

Если это поможет, у меня уже настроен SSH между ними.

Я надеялся на простой инструмент командной строки, который делает что-то вроде:

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

Чтобы я мог создавать свои собственные скрипты для автоматизации вещей. Однако я также не против приложения на основе GUI. Я хочу избежать накладных расходов на использование приложения для просмотра удаленного рабочего стола.

Любые советы или инструменты, которые вы можете предложить, были бы великолепны. Я полагаю, мне нужно будет иметь возможность отправлять комбинации клавиш, чтобы иметь полный доступ к сочетаниям клавиш, доступным в любом программном обеспечении, которое я использую на машине Ubuntu.

решение1

Вам следует установить xdotool на Ubuntu, а затем использовать его через ssh:

С помощью ssh cygwin:

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

Нажатия клавиш — это названия клавиш в keysymdef.h, из которых удаляется начальное «XK_KP_»: https://cgit.freedesktop.org/xorg/proto/x11proto/plain/keysymdef.h

Вы также можете отправить клавишу и несколько модификаторов: "Alt+a"

Обратите внимание, что ssh «съедает» один уровень экранированного текста.

Вы также можете вводить текст, щелкать, перемещать мышь, поднимать окна и т. д.

Пример текста (в две строки для отправки возврата):

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

Вот все, что вы можете сделать:

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

решение2

Если вы хотите пользоваться Интернетом на удаленном компьютере, вам, вероятно, захочется не только поделиться клавиатурой, но и дисплеем, чтобы вы могли видеть, что вы делаете.

Один из способов сделать это —ВНК, инструкции по настройке в Windows/Ubuntu см., например, здесьздесь(или гуглите).

Если у вас есть ssh-подключение, вы можете автоматизировать практически все на удаленной машине. Помимо выполнения программ, которые управляют другими программами, вы также можете вводить данные с устройств на различных уровнях. Один из способов — писать на /dev/input/event*устройства напрямую в правильном формате, см. напримерздесь(ответы ниже, также работает для клавиатур или любого другого устройства ввода). Другой способ — внедрить события X (как клавиатуры, так и мыши) с помощью xdotool, xnee, xmacroили подобных программ. Если вы хотите это сделать, вам нужно DISPLAYправильно установить в вашей удаленной оболочке (обычно на :0), а также убедиться, что работает авторизация X (я не уверен, как это настроено по умолчанию в Ubuntu, в общем случае ~/.Xauthorityдолжен содержать действительный файл cookie, который выдается менеджером отображения).

решение3

если вы видите курсор на этом расстоянии, используйте Synergy, если нет, используйте VNC.

Связанный контент