我注意到 Linux 上没有太多问题步骤记录器的替代品,我打算尝试在 shell 脚本中创建一个。
- 我如何才能等到/检测鼠标被点击的时间?此时我想截取屏幕截图。
- 如何找到鼠标点击的按钮或输入字段的描述?问题步骤记录器将返回类似用户左键单击“关闭窗口”如果我点击了“X”或者用户左键单击“关闭”如果我点击了“关闭”按钮。
- 我如何才能等到/检测按下某个键并找出哪个键?
答案1
您可以使用xinput --test-xi2 --root
命令(人信输入),其中test-xi2
表示记录输入设备,并且--root
是从所谓的根窗口(x11 特有的概念)。它会向您显示系统中何时按下哪个键、鼠标单击,甚至鼠标运动坐标。它解决了您的1
问题3
,您只需解析这些事件即可。
这个2
问题比较棘手。您可以使用xev -root
命令来监视系统中的所有 X 事件,包括以下内容(dis)出现的窗口、进入/退出特定窗口的焦点等。您必须解析其输出,并显示正在发生的事情的可读描述。顺便说一句,该命令还会记录按下的键。
需要注意的是:这显然是一个巨大的安全漏洞,可以追溯到 Xorg 创建的时候,当时没有人需要关心。因此,如今 X11 正在被 Wayland 协议取代(它本质上是 X12,但由于不向后兼容,因此协议领域以另一种方式调用),哪些 WM 正在实施 ATM。它不像协议要求的那样快速多得多来自 WM,但 Fedora 25 似乎终于默认启用了 Wayland 会话。KWin 也正在迎头赶上。而且您的脚本无法在 Wayland 上运行。这并不意味着您不能这样做 — 我认为您可以。但您需要与特定 DE 的特定 WM 紧密合作,并且该脚本不是独立的 bash 脚本,而是 WM 的插件。