Skip to content

feat(settings): 在设置页面添加全局快捷键配置功能#55

Open
Zacklinkk wants to merge 1 commit intoyan5xu:mainfrom
Zacklinkk:feat/hotkey-settings-ui
Open

feat(settings): 在设置页面添加全局快捷键配置功能#55
Zacklinkk wants to merge 1 commit intoyan5xu:mainfrom
Zacklinkk:feat/hotkey-settings-ui

Conversation

@Zacklinkk
Copy link
Copy Markdown

背景

目前应用的全局快捷键(默认 ⌘+Shift+Space)硬编码在源码中,用户无法在界面上修改,相关 Issue 也提到 F2 与系统重命名键冲突。本 PR 在设置页面新增快捷键配置功能。

改动内容

src/settings.jsx(设置独立窗口)

  • 新增「快捷键设置」卡片区块,位于页面顶部
  • 展示当前快捷键(格式化为符号,如 ⌘ + ⇧ + 空格
  • 点击「录制新快捷键」后进入监听模式(蓝色虚线框 + 自动聚焦)
  • 按下组合键实时预览,松手后显示「保存 / 取消」
  • 保存流程:注销旧热键 → 注册新热键 → 持久化 → toast 提示
  • 注册失败时自动恢复旧热键,并提示与其他应用冲突

src/App.jsx

  • 启动时从 settings 读取持久化的热键(getSetting('hotkey', ...)),不再写死默认值
  • SettingsPanel 传入 onHotkeyChange 回调,保存后同步生效无需重启

src/components/SettingsPanel.jsx(主窗口内嵌弹窗)

  • 同步添加相同的快捷键设置区块

效果预览

状态 描述
默认 显示当前快捷键 + 「录制新快捷键」按钮
录制中 蓝色虚线框,提示「请按下快捷键组合...」
检测到输入 实时显示格式化快捷键,可保存或取消
保存成功 toast 提示新快捷键,立即生效
冲突 自动恢复旧热键,toast 提示冲突原因

测试

  • 录制新快捷键并保存,验证立即生效
  • 重启应用后快捷键设置持久化
  • 录制与其他应用冲突的快捷键,验证自动回退
  • 取消录制流程正常

- settings.jsx:新增「快捷键设置」区块,支持录制新快捷键
  - 打开设置时自动加载当前已保存的热键
  - 点击「录制新快捷键」进入监听模式,按下组合键实时预览
  - 保存时注销旧热键、注册新热键,持久化到 settings 存储
  - 注册失败时自动恢复旧热键并提示冲突原因
- App.jsx:启动时从持久化设置读取热键,不再写死默认值
- SettingsPanel.jsx:同步添加快捷键设置区块(主窗口弹窗)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant