如何计算自 Ubuntu 启动以来鼠标按钮的点击次数?
我想进行鼠标按钮点击统计,所以我需要它。
谢谢
答案1
xinput
可以做你需要的事,Lukasz。你可以有一行代码(好吧,不是一行代码,但你只需要按一次 ENTER 键 :-D)来实现这一点,但首先你必须做一些工作。我发誓这很容易,我只是为了清楚起见在这里解释大部分内容。
打开终端并输入:
xinput list
您将获得一个漂亮的指针、键盘按钮等的列表,就像我的这段摘录一样:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ USB+PS/2 Optical Mouse id=10 [slave pointer (2)]
⎜ ↳ PS/2 Mouse id=13 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS GlidePoint id=14 [slave pointer (2)]
我的 USB 鼠标就在第二行,你看到它的 ID 是10。在列表中找到您的鼠标并记下它的 ID,您将需要它来执行您想要的主要命令。
如果您想检查是否获得了正确的 ID,请运行xinput test <id>
。如果您移动鼠标、单击按钮等,您应该会看到终端上出现许多信息行。它列出了您使用鼠标执行的所有操作。如果没有任何反应,请尝试指针列表中另一个对您有意义的 ID,您可能一开始就选择了错误的 ID(这实际上不应该那么难)。
当您最终找到正确的 ID 时,运行此命令:
xinput test <id>|sed -une '/release/ { x
/^$/ s/^.*$/1/
G
h
s/^/ /
s/^ *\(......\)\n/\1 /p
x
s/\n.*$//
/^9*$/ s/^/0/
s/.9*$/x&/
h
s/^.*x//
y/0123456789/1234567890/
x
s/x.*$//
G
s/\n//
h
}'
复制上述内容并粘贴。在按 ENTER 键之前,请替换<id>使用您找到的 ID。运行它时,您会让它在那里,同时继续使用系统。任何时候您想检查注册了多少次点击,只需查看终端即可。
一些重要的评论:
- 不幸的是,我不太擅长控制台、shell、命令等。我很确定有人可以改进这一点或提供更好的解决方案。我的解决方案有一个不便之处:你实际上无法实时获得结果。出于某种原因,似乎存在缓冲,你必须生成更多鼠标事件才能读取较早的事件。因此,如果你单击了但没有显示,请稍微移动鼠标,很快就会显示最后一次单击。很抱歉,但我已经尝试了一些方法,但还不知道如何解决这个问题。希望这对你来说没有那么糟糕。
- 如你所见,任何 正在计算点击次数。如果您只想计算其中一个按钮的点击次数,请将“release”替换为“release 1”、“release 2”、“release 3”,您明白了。如果您想计算所有按钮的点击次数,但要使用单独的统计数据,请在单独的终端中运行该命令(带有正确的按钮指示)。
我使用的方法:xinput list <id>
完成这项繁重的工作,显示鼠标发生的所有事情。然后我将此输出重定向到sed
,它将仅解析带有“release”事件的行。我猜可以认为“release”事件结束了“单击过程”(按下然后松开按钮)。sed 脚本不仅显示带有“release”的行,还对它们进行编号。此脚本直接从info sed
(第 4.7 节)复制而来,肯定可以改进。
答案2
您可以使用linux 输入项目。
但是你必须确保内核中有 CONFIG_INPUT_EVBUG=y(如果你安装的是调试版本,这可能是默认设置),并将调试级别设置为 8
echo 8 > /proc/sys/kernel/printk
此时,您将在控制台上看到几条可以解析的消息。
evbug.c: Event. Dev: gpio-keys/input0, Type: 0, Code: 0, Value: 0
evbug.c: Event. Dev: gpio-keys/input0, Type: 1, Code: 103, Value: 1
然后你可以安装 bitbake 和 evtest 包
sudo apt-get install bitbake evtest
然后,您可以对您的设备使用 evtest,您将需要一些测试来找出您需要的正确事件,然后您可以计算该事件的发生次数。
evtest /dev/input/eventXX
否则,如果您只想计算自登录 GDM/XDM 以来的点击次数,您可以开发或请别人来做,使用 GTK、Qt 或 wxWidgets、Enlightenment 或任何您喜欢的应用程序来监视鼠标事件并在桌面出现时立即启动此应用程序。
答案3
虽然不完全是你想要的,什么脉搏跟踪各种花絮和类似的信息是一件好事 + 可以对团队、国家等进行在线排名...