Skip to content

Configurable keyboard shortcuts system#172

Merged
siddharthvaddem merged 3 commits intosiddharthvaddem:mainfrom
FabLrc:feature/shortcuts-configuration
Mar 1, 2026
Merged

Configurable keyboard shortcuts system#172
siddharthvaddem merged 3 commits intosiddharthvaddem:mainfrom
FabLrc:feature/shortcuts-configuration

Conversation

@FabLrc
Copy link
Contributor

@FabLrc FabLrc commented Feb 26, 2026

Configurable keyboard shortcuts system

Description

Implement a fully configurable keyboard shortcuts system allowing users to customize 6 core editor actions (Add Zoom, Add Trim, Add Annotation, Add Keyframe, Delete Selected, Play/Pause). Shortcuts are persisted to disk and loaded on application startup. A new settings dialog provides real-time key capture UI with live preview.

Motivation

Current keyboard shortcuts are hardcoded, limiting user customization. Different users have different muscle memory and keyboard layouts. This feature enables:

Users to remap shortcuts to their preference
Platform-aware display (Cmd symbols on macOS, Ctrl on Windows/Linux)
Persistence across sessions
A non-intrusive UI (accessible via help button in timeline toolbar)

Type of Change

  • New Feature
  • Bug Fix
  • Refactor / Code Cleanup
  • Documentation Update
  • Other (please specify)

Screenshots / Video

Screenshot (if applicable):

image

Video (if applicable):

https://youtu.be/wURt430_M-4

Testing

Tested on Windows only

Checklist

  • I have performed a self-review of my code.
  • I have added any necessary screenshots or videos.
  • I have linked related issue(s) and updated the changelog if applicable.

@siddharthvaddem
Copy link
Owner

siddharthvaddem commented Feb 28, 2026

image

We do not want to have duplicates. Validate existing config before allowing changes/ saves. This breaks behaviour and is bad UX as we now have two actions that use same shortcuts. I can technically have the same key for all settings with the changes put forth here.

@FabLrc
Copy link
Contributor Author

FabLrc commented Feb 28, 2026

Hey @siddharthvaddem !
Thanks for catching that, you're absolutely right, having duplicate shortcuts is a really bad UX. I've now fixed it properly.

Here's what I did:

  • When you assign a key to a shortcut, the app now checks if it's already in use (either by a configurable or fixed shortcut)
  • If it's a reserved shortcut (like Tab, Del, Ctrl+Scroll) → You get an error toast and nothing changes
  • If it conflicts with another configurable shortcut → An inline warning pops up with two options:
    • Swap — instantly exchanges the bindings between the two shortcuts
    • Cancel — dismiss and keep editing
  • No conflicts? → Works as expected, binding applies right away

Screenshots :
When you try to assign a key already assigned to a configurable shortcut :
image

When you try to assign a key already assigned to a fixed shortcut :
image

Under the hood:

  • Centralized the FIXED_SHORTCUTS list so there's no duplication between what we reserve and what we show users
  • Added pure comparison functions (bindingsEqual, findConflict) that handle case-insensitivity and modifier normalization properly

So now users literally can't end up with duplicates — the UI prevents it and offers a smooth resolution path when it does happen.

Let me know if you find an other issue !

Copy link
Owner

@siddharthvaddem siddharthvaddem left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Please resolve the conflicts.

@siddharthvaddem
Copy link
Owner

siddharthvaddem commented Mar 1, 2026

Also want to point that a new Speed setting will soon be added #176 , it would be lovely if you could add that as well in a follow up PR when it gets merged.

Thanks for working on this 🙏

@FabLrc
Copy link
Contributor Author

FabLrc commented Mar 1, 2026

Hi, thanks for the note. I’ll add the Speed setting integration in a follow-up PR once both this PR and #176 have been merged; I’ll open the PR after those merges.

@FabLrc
Copy link
Contributor Author

FabLrc commented Mar 1, 2026

And same for #178 if it get merged too oc

@siddharthvaddem siddharthvaddem merged commit 451bb20 into siddharthvaddem:main Mar 1, 2026
@siddharthvaddem
Copy link
Owner

Hi, thanks for the note. I’ll add the Speed setting integration in a follow-up PR once both this PR and #176 have been merged; I’ll open the PR after those merges.

Done!

@FabLrc FabLrc deleted the feature/shortcuts-configuration branch March 2, 2026 14:28
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.

3 participants