在本地网络上将键盘输入从 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

您应该在 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)。xneexmacroDISPLAY:0~/.Xauthority

答案3

如果您可以在该距离看到光标,请使用 synergy,如果看不到,请使用 vnc。

相关内容