https://github.com/werifu/keyboard-heatmap
如题,出发点是想知道自己哪些按键用最多,又想直观看到效果,所以采取了热力图的样子,做成键盘的布局,实现使用的是 Rust 的 egui ,原理其实就是监听键盘事件然后统计映射到热力图上而已。
支持两种键盘的布局,一种是 MacBook 的键盘,另一种是 87 键的键盘(也就是中间有控制键区,但是没有小键盘的),都是 QWERTY 美式键盘布局,因为我手头只有这两种键盘,别的没法试所以就没做了。
由自定义色相决定主题颜色
可以保存为图片
效果大概如下,是大概半个小时内的按键统计情况,主要做的事是在水群(也就是打汉字拼音,不过我用的是双拼,所以猜测跟全拼可能会有比较大差异,欢迎 po 出来)
有个缺陷是按键的热力图深度到 150+基本就人眼不可区分了,我是用 HSL 颜色空间来做热力图深度的,空间也比较有限,没有特别好的办法,有好做法的话也欢迎建议。
1
AoEiuV020CN 2023-01-03 17:04:14 +08:00
深度这个, 为什么用 sigmoid ,感觉第一反应应该是线性的,把当前最高作为线性最大值,映射到 0-1 ,有什么不好的吗?
|
2
wdy3334 2023-01-03 17:05:49 +08:00
ctrl c v
|
3
opengps 2023-01-03 17:06:11 +08:00
Ctrl ,C ,V ,Enter
|
4
enzyme 2023-01-03 17:37:19 +08:00
不错。
有个其实没什么用的小建议。为了增加趣味性,鼓励用户分享。可以考虑输出下最常用的字母案件是什么。最接近的英文词是什么,最接近的中文词汇是什么。 |
5
loading 2023-01-03 17:37:53 +08:00 via Android
想法不错,有空我也试一下仿一个出来。
|
6
PerFectTime 2023-01-03 18:38:36 +08:00
那自然是 CV 最多了
|
7
EngAPI 2023-01-03 18:44:04 +08:00
装了个 kmcounter v3.7 也差不多类似的,刚开始看看,后来直接废弃了
|
8
hertzry 2023-01-03 20:16:12 +08:00
直接除以最大值变成 0~1 。
|
9
luckykong 2023-01-03 21:06:54 +08:00
可以增加一个功能,按照空格将输入分隔开,然后进行词频统计,把最高的几个词标出来。这样就能简单的实现 4 楼的想法了。反正只是图好玩,准不准确无所谓
|
10
LuxChen 2023-01-04 08:53:46 +08:00
这个工具开着之后,不知道为什么,打字总会多出来几个字母,就好比现在这样,不确定是不是这个原因 iidi
|
11
missdeer 2023-01-04 09:05:33 +08:00 5
改成立体的,越多越高
|
12
liuidetmks 2023-01-04 10:44:41 +08:00
加强版,鼠标点击的分布。 (想不出有什么现实意义。
|
13
lxms2021 2023-01-04 15:36:41 +08:00
每个键上面能显示按键次数么
|
14
Picmen 2023-01-05 16:55:04 +08:00
数量多了之后颜色不好分辨的话,建议增加数量显示
|
16
shantongxu 2023-01-05 17:22:23 +08:00
可以记录按键寿命, 键盘一直宣传几千万次的点击寿命,用个几年看看能不能达到 😐
|
17
pagict 2023-01-05 22:28:54 +08:00
3D 柱状图,高度为频次
|
18
werifu OP @AoEiuV020CN 我其实是取了半个 sigmod ,让导数单调递减,不用线性的理由是我想加大按键次数比较少时的颜色变化,因为有些按键的频率是非常低的,可能很长时间只会按到一两次,按线性去平分颜色会让这些键非常不明显,而对次数比较多的键,对多一两次感知并不敏感
|
19
werifu OP @missdeer 我觉得是个可以的思路,做成类似 https://skyline.github.com/ 的 3D 柱状图
|
21
werifu OP @liuidetmks 商业上一些 web 服务有这种鼠标 click/hover 分布的热力图统计,不过似乎主要是用来给 PM 看和改进产品的
|
22
lyqqqq 2023-01-10 10:06:00 +08:00
可以加个。
按键组合频次列表。 按键间隔不超过某个阈值( 0.5s )视为为一个组合内的。长度不限 怎样就 我今天 CTRL+C 1000 次。。。。 CTRL+V 1100 EN 999 次 最长的组合是 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 🤣 |