У меня две машины в локальной сети. Одна с 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.