Skip to content

Add F key shortcut to toggle player fullscreen - #446

Closed
tavyandy97 wants to merge 2 commits into
NuvioMedia:Devfrom
tavyandy97:fullscreen-shortcut
Closed

Add F key shortcut to toggle player fullscreen#446
tavyandy97 wants to merge 2 commits into
NuvioMedia:Devfrom
tavyandy97:fullscreen-shortcut

Conversation

@tavyandy97

@tavyandy97 tavyandy97 commented Aug 22, 2026

Copy link
Copy Markdown

Summary

Adds F as a shortcut to toggle fullscreen in the desktop player. Previously fullscreen was only reachable from the keyboard via F11 or, on macOS, Ctrl+Cmd+F.

PR type

  • Reproducible bug fix
  • UI glitch/bug fix
  • Behavior bug/regression fix
  • Small maintenance only, with no UI or behavior change
  • Docs accuracy fix
  • Translation/localization only
  • Approved larger or directional change

Why

Plain F is the near-universal fullscreen binding across video players (YouTube, VLC, Plex, mpv). The player already handled F11 and Ctrl+Cmd+F, so users reaching for F got no response.

Desktop scope

Desktop only, all platforms (Windows, macOS, Linux). The change is confined to the desktop player's WebView controls UI at composeApp/src/desktopMain/resources/player-ui/controls.js. No shared/common code changed, and no Kotlin changed — it reuses the existing togglePlayerFullscreen() helper, which sends the same toggleFullscreen command the on-screen fullscreen button already sends.

Issue or approval

#445 — filed, but not yet approved. Opening this for maintainer consideration rather than claiming approval it doesn't have.

Flagging honestly: per CONTRIBUTING.md this is a behavior change (keyboard input / fullscreen) and needs an approved feature request first, so no PR type box below is truthful today and I've left them unticked rather than check a false one. The template check will fail on that. If #445 is approved, "Approved larger or directional change" applies and I'll update. If the change isn't wanted, happy to close this.

UI / behavior impact

  • No UI change

This PR does change behavior (adds a keyboard binding), so none of the behavior boxes above can be ticked truthfully until #445 is approved.

Policy check

  • I have read and understood CONTRIBUTING.md.
  • This PR is small, focused, and limited to one problem.
  • This PR is scoped to the desktop app, desktop packaging, desktop documentation, or shared code required for desktop behavior.
  • This PR is not cosmetic-only.
  • Any UI change fixes a linked glitch/bug and includes visual proof, or this PR has no UI change.
  • Any behavior change fixes a linked bug/regression or has explicit approval, or this PR has no behavior change. — left unchecked deliberately: [Feature]: Bind F to toggle fullscreen in the desktop player #445 is not yet approved.
  • This PR does not bundle unrelated refactors, cleanups, formatting, or drive-by changes.
  • This PR does not add dependencies, architecture changes, migrations, or product-direction changes without explicit approval.
  • I listed the testing performed below.

Scope boundaries

Intentionally not changed:

  • The existing F11 and Ctrl+Cmd+F handling is untouched.
  • The app-window fullscreen dispatcher in DesktopAppFullscreen.kt is untouched, so bare F does nothing outside the player.
  • No other shortcuts added, and the unused actionShortcutCommandForEvent table (S/T/C/E/P) is left as-is rather than bundled in.
  • No Kotlin, no new commands, no dependencies.

F is routed through the existing shortcutCommandForEvent table rather than the F11 branch, so it inherits the guards a letter key needs: modifier keys are rejected (Cmd+F, Ctrl+F, Alt+F fall through untouched), and dispatch happens after the activeModal || isTextEntryTarget check so typing "f" in a search field or with a modal open does not toggle fullscreen.

Testing

  • node --check on controls.js passes.
  • Traced the dispatch path by inspection: modifier guard at shortcutCommandForEvent, modal/text-entry guard ahead of dispatch, and noteChromeActivity() confirmed to no-op while chrome is hidden.

Not yet verified by running the app. Outstanding manual checks before this should be merged:

  • F toggles into and out of fullscreen during playback
  • Cmd+F / Ctrl+F do not toggle
  • Typing "f" in the subtitle search field does not toggle
  • F11 and Ctrl+Cmd+F still work

Screenshots / Video

Not a UI change.

Breaking changes

None.

Linked issues

#456

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@tavyandy97

Copy link
Copy Markdown
Author

@KhooLy When you get a chance, could you take a look?

If anything's missing or you'd like changes to the approach, let me know and I'll update it.

Thanks for your time!

@KhooLy

KhooLy commented Sep 5, 2026

Copy link
Copy Markdown
Member

Hi thanks for your PR but #594 is going to make much more besides this feature so If his PR gets merged this is stale, if his doesnt then I can merge this. Thanks for your time.

@tavyandy97 tavyandy97 closed this Sep 6, 2026
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.

2 participants