將鍵盤輸入從 Windows 傳送到本機網路上的 Ubuntu

將鍵盤輸入從 Windows 傳送到本機網路上的 Ubuntu

我在本地網路上有兩台機器。一個是Windows 10,另一個是Ubuntu 16.04。

Linux 機器不是我的主計算機,它位於辦公室的另一側,顯示器面向我,這樣我就可以玩 Plex 或 Netflix 等。

我想知道是否有任何軟體可以用來透過從 Windows 電腦發送輸入來模擬 Linux 電腦上的鍵盤輸入。透過這種方式,我可以在另一台電腦上瀏覽網路(選擇一首新歌曲或影片等),而無需親自站起來走到另一台電腦上。

如果有幫助的話,我已經在兩者之間設定了 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 進行設定的說明,請參閱例如這裡(或Google)。

如果您有 ssh 連接,則可以自動化遠端電腦上的幾乎所有操作。除了執行控制其他程式的程式之外,您還可以在各個層級注入裝置輸入。一種方法是以/dev/input/event*正確的格式直接寫入設備,請參見例如這裡(下面進一步回答,也適用於鍵盤或任何其他輸入裝置)。另一種方法是使用xdotoolxnee或類似程式註入 X 事件(鍵盤和滑鼠)xmacro。如果你想這樣做,你需要DISPLAY在遠端 shell 中正確設定(通常為:0),並且還必須確保 X 授權有效(我不確定 Ubuntu 中預設是如何配置的,通常~/.Xauthority必須包含有效的cookie,由顯示管理器發出)。

答案3

如果您可以在該距離看到遊標,請使用 synergy,如果您看不到,請使用 vnc。

相關內容