我在本地网络上有两台机器。一台是 Windows 10,另一台是 Ubuntu 16.04。
Linux 机器不是我的主计算机,它位于办公室的另一侧,显示器面向我,这样我就可以玩 Plex 或 Netflix 等。
我想知道是否有任何软件可以用来模拟 Linux 机器上的键盘输入,通过从 Windows 机器发送输入。这样我就可以在另一台计算机上浏览互联网(选择一首新歌曲或视频等),而不必亲自站起来走到另一台机器上。
如果有帮助的话,我已经在两者之间设置了 SSH。
我希望有一个简单的命令行工具可以执行如下操作:
C:/Users/Luke> sendinput 192.168.0.10 "keycode here"
这样我就可以构建自己的脚本来自动化操作。但是,我也不反对基于 GUI 的应用程序。我想避免使用远程桌面查看应用程序的开销。
如果您能推荐任何建议或工具,那就太好了。我想我需要能够发送按键组合,这样我就可以完全访问我在 Ubuntu 机器上使用的任何软件中可用的键盘快捷键。
答案1
您应该在 ubuntu 上安装 xdotool,然后通过 ssh 使用它:
使用 cygwin 的 ssh :
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
要这样做,您需要在远程 shell 中正确设置(通常为),并且还必须确保 X 授权有效(我不确定在 Ubuntu 中默认如何配置,通常必须包含由显示管理器发出的有效 cookie)。xnee
xmacro
DISPLAY
:0
~/.Xauthority
答案3
如果您可以在该距离看到光标,请使用 synergy,如果看不到,请使用 vnc。