Files
openless/openless-all/app
baiqing eaca99bdf4 fix(insertion): make Windows/Linux paste shortcut configurable (#360)
模拟粘贴硬编码 Ctrl+V,kitty / alacritty / wezterm / gnome-terminal /
foot 等 Linux 终端只接受 Ctrl+Shift+V,听写文本只剩在剪贴板里,看起来
像"什么也没插入"。issue #360 报告了 kitty 这个具体场景。

新增 `PasteShortcut` 枚举(`CtrlV` / `CtrlShiftV` / `ShiftInsert`)作为
UserPreferences 字段,串到 simulate_paste 的 enigo 路径。Settings →
录音 多了"模拟粘贴快捷键"一行,仅在非 macOS 显示(macOS 走 AX 直写
不受影响)。默认 `CtrlV` 与历史行为一致,老配置文件没有 pasteShortcut
字段时 `#[serde(default)]` 回退到默认值,不破坏既有用户。

涵盖:
- types.rs:新枚举 + 字段 + UserPreferencesWire 串接
- insertion.rs:simulate_paste(shortcut),paste_keys 把枚举拆成
  (modifiers, primary),按下/释放严格对称,中途出错也反向释放避免卡键
- coordinator.rs:从 prefs 读取,串到三个 insert 调用点 + Windows IME 链
- 前端 TS 类型 / Settings 选择器 / 5 种语言 i18n
- 单元测试:默认 CtrlV、JSON 反序列化、paste_keys 三种映射

cargo test --lib 全部 181 通过;npm run build 干净。
2026-05-09 13:15:33 +08:00
..