Web player intercepts ⌘⇧M and blocks Chrome profile-menu shortcut
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 80/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- frontend
Research direction
Start in apps/web/app/s/[videoId]/_components/video/media-player.tsx, around lines 504-553, where the keydown handler switches on event.key.toLowerCase() and calls preventDefault() for 'm'. Check how modifier keys are handled there, then add an early return for Command, Control and Alt so browser shortcuts pass through, keeping plain M for mute and the Shift-based speed shortcuts working. Done when a keydown with metaKey set is not default-prevented and plain M still toggles mute on a share page. The issue also asks to review other letter shortcuts in the same handler.
Written by the indexing model from the issue text.
Description
Description
Cap's web video player intercepts ⌘⇧M (Command+Shift+M) on macOS, preventing Chrome's open profile menu shortcut from working when the player has focus. The player treats the modified shortcut as its plain M mute/unmute command and cancels the browser's default action.
Reproduction
- Open a Cap share page in Google Chrome on macOS, for example https://cap.so/s/mdvxms2gfmkgc0e.
- Focus the video player or one of its controls.
- Press ⌘⇧M.
Actual: Cap consumes the shortcut and toggles mute instead of allowing Chrome's profile menu to open.
Expected: Browser shortcuts containing Command should pass through. Plain M should continue to toggle mute.
Additional Context
- Affected component: Cap web share-page player (not the desktop recording app).
- Browser / OS: Google Chrome on macOS; the original reporter's exact versions were not collected.
- Live-page diagnostic: With the player focused, dispatching a cancelable
keydownwithkey: "M",metaKey: true, andshiftKey: truechanged the video'smutedstate fromfalsetotrueand setdefaultPrevented: true. This verifies the page handler consumes the modified key event; the diagnostic used a synthetic event, not a native Chrome profile-menu interaction. - Likely cause: the player's keyboard handler switches on
event.key.toLowerCase()and callspreventDefault()formwithout checking Command/Control/Option modifiers. Source: https://github.com/CapSoftware/Cap/blob/34036657845bf063c875e66a10ad537afa415f35/apps/web/app/s/%5BvideoId%5D/_components/video/media-player.tsx#L504-L553. - Suggested fix: ignore Command/Control/Alt-modified events before processing plain player shortcuts, while retaining intentional Shift-based shortcuts such as playback-speed controls. Please also check other letter shortcuts for the same browser-shortcut collision.
- Dominant language
- Rust
- Stars
- 23.2k
- Forks
- 2k
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 130
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
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
CapSoftware/Cap#2384 · 1 comment ·
Maintainers usually reply within 1 day
-
Dashboard pagination causes full page reloads on self-hosted CapPossibly taken @Dewin claimed this 29 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
CapSoftware/Cap#2305 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
CapSoftware/Cap#1714 · 3 comments ·
Maintainers usually reply within 1 day
-
Linux: forced WEBKIT_DISABLE_DMABUF_RENDERER=1 makes the main window transparent on WebKitGTK 2.54 (only repainted regions show)Possibly taken @AatmanAJ claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 25/100
CapSoftware/Cap#2624 · 2 comments ·
Maintainers usually reply within 1 day
-
macOS: main-thread panic in tauri-runtime-wry 2.8.1 freezes Cap mid Instant recording; the crashed recording then can't be recovered or reuploadedPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 4/5 3-5 days Newbie friendliness 18/100
CapSoftware/Cap#2606 · 3 comments ·
Maintainers usually reply within 1 day
Similar issues
-
area: compat area: parsing bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
reubeno/brush#1526 · 1 comment ·
Maintainers usually reply within 1 day
-
OFN writer emits `DocIRI` as a bare IRI, which becomes a version IRI or a parse error on re-readOpen
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
phillord/horned-owl#338 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
stackabletech/operator-rs#1301 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
jmcnamara/rust_xlsxwriter#205 · 4 comments ·