Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request]: Add further keybind customization support (for 60% or TKL keyboards mostly, but helps in general) #1245

Open
1 task done
caughtintheweb opened this issue Apr 21, 2023 · 1 comment

Comments

@caughtintheweb
Copy link

Is there an existing issue for the feature?

  • I have searched the existing feature requests

Describe the Feature

Many hotkeys that would frequently be used on a daily basis are binded to very specific things, like PrtScr for screenshotting most prevalently. It is possible to change these binds via custom LUAs, but I believe that having something this important for customization should be available ingame, maybe via debug menu or player settings. I am unfamiliar with the code of the game (and the language, lol), so I have no clue if this is extremely difficult to implement or not. If it isn't, then it seems like a good idea to add.

How Does The Feature Add To The Game?

Customization is the name of the game on Etterna, and having a substantial number of hotkeys be hardwired to specific keybinds just seems odd to me. Plus, a lot of them can be difficult to remember for specific purposes, requiring you to go and check what the bind is. Being able to change the bind to something you want makes it extremely easy to remember. Not to mention, there are a couple binds that are completely impossible to hit on a tenkeyless (TKL) or 60% keyboard. These sizes of keyboards aren't exactly uncommon!

Additional Context

No response

@bluebandit21
Copy link
Member

Note -- many of the things that I believe are being referred to have the following kind of hard-coded structure in the source code:

    bool bDoScreenshot =
#ifdef __APPLE__
      // Notebooks don't have F13. Use cmd-F12 as well.
      input.DeviceI == DeviceInput(DEVICE_KEYBOARD, KEY_PRTSC) ||
      input.DeviceI == DeviceInput(DEVICE_KEYBOARD, KEY_F13) ||
      (input.DeviceI == DeviceInput(DEVICE_KEYBOARD, KEY_F12) &&
       (INPUTFILTER->IsBeingPressed(DeviceInput(DEVICE_KEYBOARD, KEY_LMETA),
                                    &input.InputList) ||
        INPUTFILTER->IsBeingPressed(DeviceInput(DEVICE_KEYBOARD, KEY_RMETA),
                                    &input.InputList)));
#else
      /* The default Windows message handler will capture the desktop window
       * upon pressing PrntScrn, or will capture the foreground with focus upon
       * pressing Alt+PrntScrn. Windows will do this whether or not we save a
       * screenshot ourself by dumping the frame buffer. */
      // "if pressing PrintScreen and not pressing Alt"
      input.DeviceI == DeviceInput(DEVICE_KEYBOARD, KEY_PRTSC) &&
      !INPUTFILTER->IsBeingPressed(DeviceInput(DEVICE_KEYBOARD, KEY_LALT),
                                   &input.InputList) &&
      !INPUTFILTER->IsBeingPressed(DeviceInput(DEVICE_KEYBOARD, KEY_RALT),
                                   &input.InputList);
#endif

(src/Etterna/Globals/StepMania.cpp)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants