喜欢“量化自我”或者想测试机械键盘寿命的同学看过来,GitHub 上发现个小巧的原生 macOS 应用 KeyStats。
功能很简单,就是挂在菜单栏实时统计你今天敲了多少下键盘、点了多少次鼠标。
开源的 macOS 小工具,对按键行为进行统计
项目目前 163 Stars,基于 MIT 协议开源。
1. 核心功能
这就不是一个复杂的分析软件,主打轻量和直观:
实时统计:
- 键盘按键总数。
- 鼠标左键、右键点击次数。
- 物理距离:鼠标移动总距离、滚轮滚动距离(看看手指一天跑了多远)。
交互方式:
- 纯菜单栏应用(LSUIElement = true),不占 Dock 位置。
- 图标直接显示今日数据(大数值自动格式化,如 1.0K),点开看详细面板。
- 数据逻辑:每日午夜自动重置,支持持久化存储(重启后数据不丢)。
2. 技术实现 (Swift + CoreGraphics)
这东西是纯 Swift 5.0 写的,基于 AppKit 和 CoreGraphics,没有用 Electron 那种内存大户。
- 核心机制:通过 CGEvent.tapCreate 创建全局事件监听器 (Event Tap),捕获系统级的输入事件。
- 存储:简单的 UserDefaults 本地存储。
- 代码结构:逻辑很清晰,InputMonitor.swift 负责监听,StatsManager.swift 负责数据管理。想学习 macOS 底层事件监听的可以翻翻源码。
3. 隐私与安全
涉及到输入监听,大家最关心的肯定是隐私。
项目明确声明:只统计次数。
- 不记录具体的按键内容(不是 Keylogger)。
- 不记录输入了什么文字。
- 不记录你在哪个 App 里点击的。
- 所有数据纯本地存储,无联网上传。
4. 安装与避坑
支持 macOS 13.0 (Ventura) 及以上。
Homebrew 安装:
- brew tap debugtheworldbot/keystats
- brew install keystats
复制代码
或者直接去 Release 页下编译好的包。
避坑指南 (重要):
由于用了 CGEvent 监听系统事件,首次运行必须在“系统设置” -> “隐私与安全性” -> “辅助功能”里授予 KeyStats 权限,否则它啥都统计不到。
项目地址:
https://github.com/debugtheworldbot/keyStats
|
|