【问题标题】:Read keyboard input and mouse读取键盘输入和鼠标
【发布时间】:2014-09-18 04:54:34
【问题描述】:

我想在 Linux Lubuntu x64 下读取键盘和鼠标输入。

我从输入中得到的字符和动作需要通过局域网发送到另一台 Linux 计算机。

我不需要绝对的鼠标坐标。

我听说过 X11,但这仅适用于一个窗口。 有没有一种简单的方法可以在全球舞台上获得所有这些输入?

谢谢

【问题讨论】:

  • 你为什么要问?你在编写什么样的应用程序?窗口管理器?
  • 你应该对X11有更多的了解。你的远程机器是 Linux 系统吗?

标签: linux ubuntu input keyboard


【解决方案1】:

我假设您正在运行桌面(不是普通控制台),即使用 X11 服务器(因此编写 X11 client 应用程序)。

请理解X11服务器运行在台式机或笔记本电脑上,连接到您的物理液晶屏和物理键盘鼠标。因此,X11 服务器不是远程的,而是本地的并且物理上就在您的眼前。 X11 客户端应用程序可以是远程的,但通常是本地的。

我不清楚你的真正目标。

您需要进一步了解X Window System core protocol。您可以抓住鼠标和/或键盘并使用 根窗口 - 即整个屏幕(因此获取它的事件)。看起来您想编写 window manager 的某些部分。

还可以阅读有关 Extended Window Manager Hints 等约定的更多信息

在实践中,您肯定希望使用一些工具包,例如 QtGtk。也许libsdl 非常适合您的需求(我不太了解)。

也许改进现有的窗口管理器和桌面环境更现实。利用与您的目标相关的现有free software 并为其做出贡献。

请注意,Wayland 可能会在几年内取代 X11。

PS。这可能意味着数月(或数年)的工作。但我不确定你的目标是什么

附录

如果您只需要向远程机器发送按键和鼠标移动,请考虑ssh -X(google for X over SSH),或使用一些远程 X11 应用程序(即在远程 Linux 机器上设置 DISPLAY=desktop:0 并启动X11 客户端应用程序),或者可能使您在远程计算机上的软件成为一个专门的 Web 服务器(通过使用一些 HTTP 服务器库,如 libonion)并使用您桌面的浏览器。

您似乎想让您的 Linux 台式机(或笔记本电脑)像 X terminal 一样工作。这是可能的,但今天(2014 年)这可能是个坏主意。您可能希望您的网络浏览器是本地的,甚至可能是LibreOffice 套件。使您的桌面至少(或多或少)thin client;如果远程机器和应用程序没有 X11 客户端库,请参阅Vnc

【讨论】:

  • 我需要将按下的键和鼠标移动发送到通过局域网连接的另一台电脑。
  • 您应该编辑您的问题来解释这一点。你不能用ssh -X 吗?
  • 远程“另一台”PC 上运行什么操作系统和应用程序?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-13
相关资源
最近更新 更多