summaryrefslogtreecommitdiff
path: root/users/datagrok/README.md
diff options
context:
space:
mode:
authorMichael F. Lamb <mike@datagrok.org>2020-01-26 20:26:40 -0800
committerridingqwerty <george.g.koenig@gmail.com>2020-01-26 23:26:40 -0500
commit5fb95c5f94d6c939dfea2fc716ef818d6242b918 (patch)
tree90aa18ca4d1036ceb7f1c4333c6767967b812806 /users/datagrok/README.md
parent05d6e6ca78087969d7a47862341d10b6b555c37e (diff)
create users/datagrok (#7653)
* users/datagrok: add shared functions * users/datagrok: improve base-layer selection feature * users/datagrok: add README.md
Diffstat (limited to 'users/datagrok/README.md')
-rw-r--r--users/datagrok/README.md63
1 files changed, 63 insertions, 0 deletions
diff --git a/users/datagrok/README.md b/users/datagrok/README.md
new file mode 100644
index 0000000000..0d58c04e74
--- /dev/null
+++ b/users/datagrok/README.md
@@ -0,0 +1,63 @@
+# datagrok's QMK user-space code
+
+## cdeq "comma dot exclamation question"
+
+This is a hack to place `question mark` on `shift-comma` and `exclamation mark` on `shift-period`.
+
+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.
+
+It's a "hack" because the "proper" way to accomplish this would be to edit the operating system's keymap.
+
+### setup
+
+in your `keymap.c`:
+
+ #include "feature_cdeq.h"
+
+ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return process_record_cdeq(keycode, record);
+ }
+
+in your `rules.mk`,
+
+ SRC += feature_cdeq.c
+
+### examples
+
+- atreus:datagrok
+- bm43a:datagrok
+- mitosis:datagrok
+
+## base layer selector
+
+Defines a keycode `KF_LAYO` to rotate between available default layers.
+
+`Shift`+`KF_LAYO` makes the currently selected one persistent across reboots.
+
+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.
+
+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.
+
+### setup
+
+in your `keymap.c`:
+
+ #define KF_LAYO SAFE_RANGE
+ #include "feature_default_layers_selector.h"
+ const uint8_t highest_base_layer = 4;
+
+ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return \
+ process_record_save_default_layer(keycode, record) && \
+ process_record_select_default_layer(keycode, record);
+ }
+
+in your `rules.mk`,
+
+ SRC += feature_default_layers_selector.c
+
+### examples
+
+- atreus:datagrok
+- bm43a:datagrok
+- mitosis:datagrok