【吼蛙】Vibe了一个 Mac 听写转文字LLM后处理的App (新增选中文本一键处理)

感谢。跑通了。

用 Fn 键一键切换豆包语音输入(直接替代Typeless)

首先,设定豆包桌面端的语音输入流程是:激活 → 说话 → 回车确认。每次都要按两个不同的快捷键,不太顺手。这里激活的快捷键可以自己设定,我用了Cmd+1

Karabiner-Elements 可以把 Fn 键改成一个状态切换键:

  • 第一次按 FnCmd+1(激活豆包输入)
  • 第二次按 Fn → 发送 Enter(确认输入),注意,这个应该是所有东西都输入完了之后再按。

这样只用一个键就能完成整个语音输入流程,体验接近原生输入法切换。而且这个和typeless就完全match了。

配置方法

1. 安装 Karabiner-Elements

brew install --cask karabiner-elements

安装后首次打开,需要在系统设置中授权辅助功能和输入监控权限。

2. 添加配置文件

将以下内容保存到 ~/.config/karabiner/assets/complex_modifications/doubao-fn-toggle.json:

{
 "title": "Doubao Voice Input Toggle",
 "rules": [
   {
     "description": "Fn toggles Doubao: first press = Cmd+1 (activate), second press = Enter (confirm)",
     "manipulators": [
       {
         "type": "basic",
         "from": {
           "key_code": "fn",
           "modifiers": { "optional": ["any"] }
         },
         "conditions": [
           {
             "type": "variable_if",
             "name": "doubao_active",
             "value": 0
           }
         ],
         "to": [
           {
             "key_code": "1",
             "modifiers": ["left_command"]
           },
           {
             "set_variable": {
               "name": "doubao_active",
               "value": 1
             }
           }
         ]
       },
       {
         "type": "basic",
         "from": {
           "key_code": "fn",
           "modifiers": { "optional": ["any"] }
         },
         "conditions": [
           {
             "type": "variable_if",
             "name": "doubao_active",
             "value": 1
           }
         ],
         "to": [
           {
             "key_code": "return_or_enter"
           },
           {
             "set_variable": {
               "name": "doubao_active",
               "value": 0
             }
           }
         ]
       }
     ]
   }
 ]
}

3. 启用规则

打开 Karabiner-Elements → Complex Modifications → Add Rule → 找到 “Doubao Voice Input Toggle” → 启用。

注意事项

新款 Mac 的 Fn 键同时也是 Globe 键。如果 Karabiner 无法拦截 Fn,需要在系统设置 → 键盘 → “按下 fn
键时"改为"不执行任何操作”,这样 Karabiner 才能接管这个键。

原理

Karabiner 的 complex modifications 支持通过变量(set_variable / variable_if)实现有状态的按键映射。这里用 doubao_active
变量在 0 和 1 之间切换,让同一个 Fn 键在两次按下时分别发送不同的按键。

最终结果

感觉实际上不如Typeless。继续用Typeless了。

3 个赞