如何每天统计按下的按键?

k0p*_*kus 6 keyboard software-recommendation logging 16.04

我想分析我在日常打字中按某个键的频率,因此我想设置对我的键盘的跟踪。(也可能是我被质疑我最常按下的键是退格键,我想用确凿的事实来反驳这一点。)

我对完整的字符串不感兴趣,这些字符串不应该存储在磁盘上的任何地方。我正在寻找的不是一个完整的键盘记录器,最好避免黑帽用例。

我的快速搜索提出了:

xinput --test-xi2
Run Code Online (Sandbox Code Playgroud)

然而这是非常原始的:

EVENT type 13 (RawKeyPress)
    device: 3 (12)
    detail: 37
    valuators:

EVENT type 13 (RawKeyPress)
    device: 3 (12)
    detail: 54
    valuators:
Run Code Online (Sandbox Code Playgroud)

我必须自己实施统计数据。

有什么办法可以让我按下按键的统计数据吗?

进一步的搜索让我偶然发现了krefreq,但我还没有深入研究它。

Höl*_*lin 1

您可以使用openbox轻松定义键绑定,将任何键绑定到操作:

 <keybind key="0x41">
      <action name="Execute">
        <execute>echo "A\n" >> keylog.txt</execute>
      </action>
 </keybind>
Run Code Online (Sandbox Code Playgroud)

您可以在 rc.xml 文件中定义映射并运行openbox --reconfigure以应用新绑定。每次如果您按下与映射条目之一相关的键,它会将相应的字符写入 keylog.txt 文件。一天结束时,如果您对敲击每个键的次数感兴趣,请计算 keylog.txt 中的条目:

 sort keylog.txt | uniq --count
Run Code Online (Sandbox Code Playgroud)

我知道它不符合您的要求,因为它将输出保存在您的硬盘上,您必须自己计算数量。但它看起来很简单,我不知道你在寻找哪种进一步的统计数据。在我看来,如果你说:

我对完整的字符串不感兴趣,并且这些字符串不应存储在磁盘上的任何位置。

如果程序不应该将输入存储在文件中的某个位置,那么您对程序如何处理您的所有击键有何期望?

上述草案还提出了一个进一步的问题。lubuntu 16.04 中是否有 openbox 或标准输入 (stdin) 重定向到的文件。我的意思是他们在哪个接口/端口上监听当前的击键?