我想知道哪些文件属于击键和鼠标点击,以及向它们发送什么样的数据。
我问这个问题的主要目的是按键记录。我想编写一个按键记录器脚本来执行如下所示的一些任务:
- 无论何时我输入一个特殊的单词,我都可以在后台运行命令。例如,当我输入 Firefox 时,操作系统中的任何位置都会打开 Firefox,除非我按住某个特殊键(例如 Alt 键)。
- 我可以拥有完整的击键和鼠标点击日志文件。
- 当我更改键盘的输入语言并且打开一个特殊程序(即终端)时,它会自动将语言更改为英语。(我不是指更改输入语言,而是指更改其他语言击键的脚本这样程序就认为它是英语。)
我还想通过了解按键记录器需要跟踪哪些文件来检测系统中的按键记录(如果有)。
笔记:
- 我想在最低运行级别进行按键日志记录。运行级别越低,我的问题就解决得越好。
- 我还读过一些问题,例如“Unix 用户级键盘记录器”,但这些问题有一些局限性,即键盘记录仅发生在终端中。我不想使用像
script
.我想以深入、全面且不受限制的方式进行按键记录。 - 可能还有其他更好的方法来完成我上面列出的事情。但正如我所说,我的目的是学习键盘记录并更多地了解与键盘和鼠标输入相关的文件。)
我知道我的问题可能有很长的答案。如果是这样,我想知道以下信息:
哪些文件属于击键?
哪些文件属于鼠标点击?(这个比前一个不太重要。)
什么样的数据被发送到这些文件?
哪些命令可以帮助我实现上面列出的目的?
答案1
在 Linux 上,输入设备在/dev/input
.要使用输入事件做一些很酷的事情,请查看埃夫德夫内核子系统,以及libevdev
.如果该维基百科链接曾经中断,请在内核文档中进行搜索。
这个问题太宽泛了,这个答案只能作为入门指南。 (另外,我自己也不知道具体情况!)
至于你关于通用 Firefox 启动器的想法,这似乎是一个奇怪的想法。最好有一个特殊的按键来激活命令输入。 KDE 的 Plasma 桌面做到了这一点: alt+ space(任何时候,无论哪个 X11 窗口具有键盘焦点)都会在屏幕顶部显示一个文本框。该文本搜索主目录中的文件和命令名称。
如果您想亲自使用 evdev,我强烈建议您使用击键监视来检测触发按键序列。就使用库而言,您仍然希望获得全部击键,我只是建议你用它们做一些更理智的事情。 :)
如果我不小心启动了我一直在 stackoverflow 上谈论的程序,我会发疯的。在输入任何内容之前必须考虑一下,以确保它不会触发您不想要的程序可怕。