Shortcut recorder rejects ⌘⇧ with a digit or symbol (e.g. ⌘⇧4)
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 72/100
Research direction
The bug is in the shortcut recorder's key mapping: hotkey_code_for_key has no entry for shifted symbols such as $, so shortcuts_capture_key returns unsupported_key for ⌘⇧4. Start by reading hotkey_code_for_key and the capture path that receives cmd-$, then decide how shifted digits and symbols should map to physical key codes. Done means ⌘⇧4 and ⌘⇧/ record successfully and a test or manual check confirms the stored shortcut matches the physical key.
Written by the indexing model from the issue text.
Description
Description
Recording ⌘⇧4 for "Screenshot an area" shows "That key can't be used in a shortcut. Try a letter, number or F-key." The same happens for ⌘⇧ with any digit or punctuation key, like ⌘⇧1 or ⌘⇧/. ⌘⇧ with a letter records fine.
The macOS screenshot shortcuts are turned off on this Mac, and the other screenshot apps here (Shottr, CleanShot X) don't bind ⌘⇧4.
On macOS, gpui reports a shifted digit or symbol as the character it types and clears Shift, so ⌘⇧4 reaches shortcuts_capture_key as cmd-$. hotkey_code_for_key has no entry for $, so the recorder shows unsupported_key. The Tauri app stored e.code and e.shiftKey, so ⌘⇧4 recorded there.
Reproduction
- Open Settings → Shortcuts → Screenshot an area → Record shortcut.
- Press ⌘⇧4.
Additional Context
- Cap version: 0.6.2
- Operating system, version: macOS 27.0
- Device (optional): Apple Silicon
- Dominant language
- Rust
- Stars
- 24.2k
- Forks
- 2.2k
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 731
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from CapSoftware/Cap
-
Android visitors are offered the Linux .deb on cap.so's homepage and download pagePossibly taken @patrickballard claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
CapSoftware/Cap#3677 · 1 comment ·
Maintainers usually reply within 1 day
-
Download, FAQ, privacy and terms pages have no meta descriptionPossibly taken @patrickballard claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
CapSoftware/Cap#3675 · 1 comment ·
Maintainers usually reply within 1 day
-
Web player intercepts ⌘⇧M and blocks Chrome profile-menu shortcutPossibly taken @AatmanAJ claimed this 19 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
CapSoftware/Cap#2596 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
CapSoftware/Cap#2384 · 2 comments ·
Maintainers usually reply within 1 day
-
Dashboard pagination causes full page reloads on self-hosted CapMay be free again A pull request for this issue was closed without being merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
CapSoftware/Cap#2305 · 2 comments ·
Maintainers usually reply within 1 day
Similar issues
-
A-linter
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
oxc-project/oxc#28783 ·
Maintainers usually reply within 1 day
-
Substrait consumer doesn't recognise `shift_left` / `shift_right` from functions_arithmetic.yamlOpenbug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
apache/datafusion#27059 ·
Maintainers usually reply within 1 day
-
Bump calamine to 0.38: RUSTSEC-2026-0436 (CFB/OLE2 panic and unbounded allocation) fails cargo auditOpen
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
docling-project/docling.rs#979 ·
Maintainers usually reply within 1 day
-
llm translation
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day