Skip to content

Releases: jeffliulab/vibevibe

vibevibe 0.2.0 · 两键小键盘 + 双触发通道

Choose a tag to compare

@jeffliulab jeffliulab released this 27 Jul 14:37

装 / 升级

pip install -U vibevibe
vibevibe setup

两条触发通道,同时生效

通道 按键 需要什么 给谁用
桌面快捷键 Super+Shift+V(可改) 零硬件、零权限 任何人,pip install 完就能用
小键盘 F19(固定) 两键小键盘 + 一条只针对它的 udev 规则 有专用硬件的人

为什么默认 Super+Shift+V 而不是 Ctrl+Shift+V:后者在浏览器、VS Code、终端里都是「粘贴为纯文本」。那是应用内部的绑定,任何系统层检查都看不到。应用基本不碰 Super 键(桌面环境保留键),所以最安全。

两键小键盘

用 VIA 协议直接写板子的 EEPROM:左键 → KC_F19,右键 → KC_ENTER。改的是硬件自己的存储,换台电脑插上依然生效。

热键冲突检查

  • 撞系统快捷键 → 拒绝
  • 撞 vibevibe 自己的快捷键 → 拒绝(两条通道同时触发,toggle 下等于连切两次,表现为「按了没反应」)
  • 有 X11 keysym → 允许但警告(会同时送给当前应用)

设置 →「按键」支持按下即捕获,含组合键。

关于窗口

托盘菜单新增「关于」:版本号、当前使用的各个路径、打开日志的按钮。

推翻的两处原设计

grab 独占必须关掉。 原来把「能整个独占设备」当成专用小键盘的优势,但独占是整设备级的——会把右键的 Enter 一起吞掉。不独占也没事:F19 在 X11 里没有 keysym,漏给应用无副作用。

安全闸判据从「按键数量」改成「设备名匹配」。 实测两键小键盘声明 279 个键、比主键盘(143)还多——QMK 系固件不管物理几个键都声明整个键位范围,数量根本区分不出主键盘。

修的 bug

  • 冲突检查器漏报:GNOME 加速器字符串没规范化,<Shift><Super>space 和 <Super><Shift>space 匹配不上;<Primary>/<Ctrl>/<Control> 三种别名也没归一
  • 冲突检查器误报可用:没校验主键是不是合法 keysym 名,输入中文会返回「✓ 可用」
  • 推荐值写死「F13~F24」被实测打脸:这台机器十二个候选里只有 F19 和 F24 没有 keysym,改成按当前布局现算
  • 托盘静默吞异常:nohup 把 stderr 丢进黑洞,跑着旧代码时点「设置」毫无反应

已知不足

  • 只做了 X11(Wayland 待做)
  • MuJoCo、daemon、CAN 这类同音专有名词仍会认错(所有模型都栽,包括 Whisper)
  • 转写期间移动光标,文字会落到新位置

vibevibe 0.1.0

Choose a tag to compare

@jeffliulab jeffliulab released this 26 Jul 03:43

Linux 上唯一走 Qwen3-ASR 的本地中英混说听写工具。按一个键说话,松开文字就出现在光标处,全程不联网。

装

pip install vibevibe
vibevibe setup

选型是实测定的

12 条本人录音 / 30 个技术词:

后端 技术词命中 CER 英文 WER 平均 RTF
Qwen3-ASR-1.7B int4 77% 0.082 0.213 0.15
Qwen3-ASR-0.6B 70% 0.132 0.309 0.08
Whisper large-v3-turbo 60% 0.143 0.503 0.50

实际使用延迟(说完到出字)0.4~0.8 秒,4 个推理线程。

纯 CPU

不碰显卡。CTranslate2 在 Blackwell(sm_120)上用 int8 会崩,而且不占显存意味着跑训练任务时听写照样能用。

内存可控

托盘图标里两个开关:

状态 内存
服务开 + 热加载开 3.9 GB
服务开 + 热加载关 0.24 GB
服务关 0

已知不足

  • 只做了 X11(Wayland 待做)
  • MuJoCo、daemon、CAN 这类同音专有名词仍会认错(所有模型都栽,包括 Whisper)
  • hold「按住说话」模式需要专用小键盘 + udev 规则,尚未实机验证