qmk/modules/getreuer/custom_shift_keys
2025-03-18 22:27:19 +01:00
..
custom_shift_keys.c import https://github.com/getreuer/qmk-modules.git 2025-03-18 22:27:19 +01:00
custom_shift_keys.h import https://github.com/getreuer/qmk-modules.git 2025-03-18 22:27:19 +01:00
introspection.c import https://github.com/getreuer/qmk-modules.git 2025-03-18 22:27:19 +01:00
introspection.h import https://github.com/getreuer/qmk-modules.git 2025-03-18 22:27:19 +01:00
qmk_module.json import https://github.com/getreuer/qmk-modules.git 2025-03-18 22:27:19 +01:00
README.md import https://github.com/getreuer/qmk-modules.git 2025-03-18 22:27:19 +01:00

Custom Shift Keys

Modulegetreuer/custom_shift_keys
Version2025-03-07
MaintainerPascal Getreuer (@getreuer)
LicenseApache 2.0
Documentation https://getreuer.info/posts/keyboards/custom-shift-keys

This is a community module adaptation of Custom Shift Keys, a light alternative to QMK's Key Overrides for customizing what keycode is produced when a key is shifted.

Add the following to your keymap.json to use Custom Shift Keys:

{
    "modules": ["getreuer/custom_shift_keys"]
}

Then in your keymap.c, define how keys are shifted with the custom_shift_keys array. Each row defines one key. The first keycode is the keycode as it appears in your layout and determines what is typed normally. The shifted_keycode is what you want the key to type when shifted. An example:

const custom_shift_key_t custom_shift_keys[] = {
  {KC_DOT , KC_QUES},  // Shift . is ?
  {KC_COMM, KC_EXLM},  // Shift , is !
  {KC_MINS, KC_EQL },  // Shift - is =
  {KC_COLN, KC_SCLN},  // Shift : is ; 
};

For instance, the first row defines that when KC_DOT is pressed with Shift held, keycode KC_QUES is sent.

See the Custom Shift Keys documentation for configuration options and further details.