Skip to content

feat(settings): add comprehensive shortcuts screen to show all added shortcuts in one player - #633

Open
AdityasahuX07 wants to merge 14 commits into
NuvioMedia:Devfrom
AdityasahuX07:patch-8
Open

AdityasahuX07 wants to merge 14 commits into
NuvioMedia:Devfrom
AdityasahuX07:patch-8

Conversation

@AdityasahuX07

@AdityasahuX07 AdityasahuX07 commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Added a dedicated "Shortcuts" settings page that provides a comprehensive overview of keyboard and mouse shortcuts. This includes custom mouse SVG icons, uniform Material vector arrows for directional inputs, and a navigation bypass on tablet/desktop layouts to immediately open the Shortcuts page from the sidebar rather than requiring an extra click through a mediator sub-menu.

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

The application lacked a centralized way for users to view and reference keyboard and mouse shortcuts. This implements a clean UI with proper custom SVG icons, correctly sequenced shortcut preferences (e.g., M4/M5 assigned to Forward/Backward, uniform vector chevrons replacing inconsistent text symbols), and significantly improves navigation flow by directly routing to the page from the settings sidebar on desktop layouts.

Desktop scope

Affects desktop shared code (composeApp/src/commonMain). Navigation routing improvements apply to desktop layouts utilizing the sidebar (TabletSettingsScreen), while the new Shortcuts UI page is implemented in common Compose Multiplatform code.

Issue or approval

Fixes #634

UI / behavior impact

  • No UI change
  • No behavior change
  • UI changed only to fix a documented glitch/bug
  • Behavior changed only to fix a documented bug/regression
  • UI change has explicit maintainer approval
  • Behavior change has explicit maintainer approval

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.
  • 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.

UI polish, cosmetic-only changes, minor behavior tweaks, and unapproved product changes will be closed without review.

Scope boundaries

This PR strictly adds the shortcuts visual page and its navigation routing. It does not alter the underlying keyboard/mouse event handling logic or actual runtime playback shortcut behavior.

Testing

Tested locally on Windows 11 Desktop (desktopMain).

  • Verified custom mouse SVGs (mouse_m4_button_16, etc.) scale correctly inside keycaps.
  • Verified Material KeyboardArrow vector icons render uniformly across OS fonts.
  • Verified clicking "Shortcuts" in the settings sidebar instantly routes to the ShortcutsSettingsPage without rendering the intermediate mediator menu.
  • Compiled and built successfully with ./gradlew desktopMainClasses.

Screenshots / Video

Screenshot 2026-09-07 235926 Screenshot 2026-09-07 235944

Breaking changes

None

Linked issues

Fixes #634

@KhooLy

KhooLy commented Sep 9, 2026

Copy link
Copy Markdown
Member

from tapframe:
looks fine, just need to move shortcut above advanced in the left panel

@AdityasahuX07

Copy link
Copy Markdown
Contributor Author

from tapframe: looks fine, just need to move shortcut above advanced in the left panel

Done.
image

Note - #639 is related with this PR.

@KhooLy

KhooLy commented Sep 9, 2026

Copy link
Copy Markdown
Member

please move all hardcoded user-facing text in the shortcuts page to string resources, and strip the embedded C2PA/Claude metadata from the mouse SVGs.

@AdityasahuX07

Copy link
Copy Markdown
Contributor Author

please move all hardcoded user-facing text in the shortcuts page to string resources, and strip the embedded C2PA/Claude metadata from the mouse SVGs.

Done.

@KhooLy

KhooLy commented Sep 9, 2026

Copy link
Copy Markdown
Member

Thanks, the latest version now builds successfully and the M4/M5 SVGs are clean.
Before merging, could you please clean up two things?

  1. d5b77bb adds custom theme strings that are unrelated to this PR and are not used anywhere. Please remove them from this PR.
  2. compose_settings_shortcuts_key_backspace is unused because the Backspace shortcut was removed. Please remove that resource as well.
    The numeric and alphabetic key labels are now kept as literals, which is correct. It would also be cleaner to squash the SVG delete/re-add commits into one logical commit.

Removed several theme strings and a backspace key string from the XML resource file.
@AdityasahuX07

Copy link
Copy Markdown
Contributor Author

Thanks, the latest version now builds successfully and the M4/M5 SVGs are clean. Before merging, could you please clean up two things?

  1. d5b77bb adds custom theme strings that are unrelated to this PR and are not used anywhere. Please remove them from this PR.
  2. compose_settings_shortcuts_key_backspace is unused because the Backspace shortcut was removed. Please remove that resource as well.
    The numeric and alphabetic key labels are now kept as literals, which is correct. It would also be cleaner to squash the SVG delete/re-add commits into one logical commit.

Done.

slmnliu added a commit to slmnliu/NuvioDesktop that referenced this pull request Sep 14, 2026
This workflow builds the Nuvio Desktop PR NuvioMedia#633 for Windows x64, verifying the source, setting up the environment, and packaging the application into an MSI installer.
@KhooLy

KhooLy commented Sep 14, 2026

Copy link
Copy Markdown
Member

What do you think about this implementation instead of yours? rewrite-shortcuts Give it a try if you want

@AdityasahuX07

AdityasahuX07 commented Sep 14, 2026

Copy link
Copy Markdown
Contributor Author

What do you think about this implementation instead of yours? rewrite-shortcuts Give it a try if you want

I gave rewrite-shortcuts a thorough look. I think your implementation is a better foundation than my current shortcut implementation, especially because it introduces a proper centralized, user-configurable shortcut system with persistence, conflict detection, and player integration.

But the some shortcuts are missing that must add before push to dev branch.

  1. Add a “+” button for every action so users can add additional key bindings instead of being limited to the existing binding.
11-small
  1. Add the missing player actions to the configurable shortcut list.

A few important player actions are missing I added bellow:

Audio -

  • Open Audio Track Selector - A
  • Cycle Audio Track - B

Playback Speed -

  • Open Playback Selector - ` (this is the key left of "1")
  • Increase Playback Speed - Shift+>
  • Decrease Playback Speed - Shift+<
  • Reset Playback Speed - /

Subtitle -

  • Increase Subtitle Delay - G
  • Decrease Subtitle Delay - H
  • Toggle Subtitle Opacity between 100% or 50% - O
  • Increase Subtitle Opacity - P
  • Decrease Subtitle Opacity - I
  1. Mouse configuration is not added.

@KhooLy

KhooLy commented Sep 14, 2026

Copy link
Copy Markdown
Member

I removed some of shortcuts by intent because they're making it complicated like for every action we dont need a shortcut It's just extra code and I dont get why we should add mouse shortcuts, shortcuts meant for keyboard because you have lots of keys mouse you have mouse1 and mouse2 sometimes mouse4 and mouse5 which is limited and mouse4 and mouse5 intent is always forward and back and i didnt added every shortcut in there because nobody cares about things like "Mouse1 to play/pause" like that's already a thing.

@AdityasahuX07

AdityasahuX07 commented Sep 14, 2026

Copy link
Copy Markdown
Contributor Author

I removed some of shortcuts by intent because they're making it complicated like for every action we dont need a shortcut It's just extra code and I dont get why we should add mouse shortcuts, shortcuts meant for keyboard because you have lots of keys mouse you have mouse1 and mouse2 sometimes mouse4 and mouse5 which is limited and mouse4 and mouse5 intent is always forward and back and i didnt added every shortcut in there because nobody cares about things like "Mouse1 to play/pause" like that's already a thing.

I totally agree for we dont need too many shortcuts.

Also drop the mouse configuration to make it simple.

Since the some shortcut removal is intended. But I do believe some important shortcut is missing please add those keyboard shortcuta

I narrow down the previous missing shortcut lists and revised with only most frequently used shortcut,

  1. Cycle audio track
  2. Open audio selector window
  3. Playback speed increase decrease and reset
  4. Subtitle delay increase decrease
  • Also you not mentioned about my [+] button addition this is most important feature to add

@KhooLy

KhooLy commented Sep 14, 2026

Copy link
Copy Markdown
Member
  1. and 3. is good but 2. is completely useless nobody needs a shortcut open audio selector its not a often thing to use and 4. is completely useless it will prevent fine adjusting which needs mouse via shortcut we can only attach to a fixed seconds which cant be exact but yeah i can also add + feature

@AdityasahuX07

Copy link
Copy Markdown
Contributor Author
  1. and 3. is good but 2. is completely useless nobody needs a shortcut open audio selector its not a often thing to use and 4. is completely useless it will prevent fine adjusting which needs mouse via shortcut we can only attach to a fixed seconds which cant be exact but yeah i can also add + feature

I agree 2 is useless that just added to make symmetric because the subtitle window is added

4 is good addtion if we add 50ms +/- because when we adjust via ui it cover the complete screen so multiple times we have to required open close the aub delay window. When the shortcut added it will be easy to adjust

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.

[Feature]: Add shortcut screen when listed all the added shortcuts

2 participants