Skip to content

feat: WIP Rebindable hotkeys#1031

Draft
grifinas wants to merge 1 commit into9001:hovudstraumfrom
grifinas:rebindable-hotkeys
Draft

feat: WIP Rebindable hotkeys#1031
grifinas wants to merge 1 commit into9001:hovudstraumfrom
grifinas:rebindable-hotkeys

Conversation

@grifinas
Copy link

@grifinas grifinas commented Nov 23, 2025

This is just me telegraphing upcoming PR and trying to get early(ish) feedback

Motivation:

  • As a user I'd like to be able to rebind the hotkeys to something i find more intuitive
  • As a user with accessibility needs, I'd like to rebind the hotkeys to keys that better suit my abilities.
  • As a developer, I want to add new bindings without risking conflicts with existing user workflows

Description:
This PR adds the ability for the user to rebind existing hotkeys. It refactors all existing hotkeys behind actions. Allows new developers to, at a glance see what actions are available and to compose/modify them easier.

Notes:

  • UI's not done. Need buttons to rebind, delete, add, reset keybind. Also will change how HTML is constructed
  • Keybinding structs are a bit of a mess, will eventually expose a more cohesive thing
  • Added lazyLoad JS function to allow devs to add scripts without changing HTML files. Will probably not end up using it in final PR, since it complicates the dependency dynamics
  • Not tested on Internet Explorer, i don't have Windows.
  • Assuming Older browser support is optional I would at least like to use templates instead of generating string HTML
  • Need to go through all other UI elements where hotkeys are hinted and make them resolve the hotkeys that the user is currently using
  • Need to make ? hotkey also render the new hotkeys, not the OG
  • Eventually, though maybe not with this iteration, i'd be nice if adding a hotkey was just the modification of one struct with maybe a function definition for the implementation. Devs could refer the the action when they want to execute it making the code vastly more readable. e.g. execute(HOTKEY_ACTIONS.PLAY_PAUSE)

This PR complies with the DCO; https://developercertificate.org/

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.

1 participant