You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.9 KiB

  1. # datagrok's QMK user-space code
  2. ## cdeq "comma dot exclamation question"
  3. This is a hack to place `question mark` on `shift-comma` and `exclamation mark` on `shift-period`.
  4. When using an operating system configured for a US/qwerty layout this replaces the angle brackets `<` `>` with `?` `!`. This helps on small keyboards to keep symbols for prose co-located in one layer, and symbols for programming in another.
  5. It's a "hack" because the "proper" way to accomplish this would be to edit the operating system's keymap.
  6. ### setup
  7. in your `keymap.c`:
  8. #include "feature_cdeq.h"
  9. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  10. return process_record_cdeq(keycode, record);
  11. }
  12. in your `rules.mk`,
  13. SRC += feature_cdeq.c
  14. ### examples
  15. - atreus:datagrok
  16. - bm43a:datagrok
  17. - mitosis:datagrok
  18. ## base layer selector
  19. Defines a keycode `KF_LAYO` to rotate between available default layers.
  20. `Shift`+`KF_LAYO` makes the currently selected one persistent across reboots.
  21. This is useful if you'd like your keyboard to support and toggle between QWERTY, Dvorak, Colemak, Workman, and other layouts while keeping a common arrangement of modifier and function keys.
  22. Since toggling layouts seems like something one does infrequently, I wanted to be able to operate this feature with a single key, instead of one for each layer like planck:default or bootmagic.
  23. ### setup
  24. in your `keymap.c`:
  25. #define KF_LAYO SAFE_RANGE
  26. #include "feature_default_layers_selector.h"
  27. const uint8_t highest_base_layer = 4;
  28. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  29. return \
  30. process_record_save_default_layer(keycode, record) && \
  31. process_record_select_default_layer(keycode, record);
  32. }
  33. in your `rules.mk`,
  34. SRC += feature_default_layers_selector.c
  35. ### examples
  36. - atreus:datagrok
  37. - bm43a:datagrok
  38. - mitosis:datagrok