summaryrefslogtreecommitdiffstats
path: root/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl
diff options
context:
space:
mode:
authorRyan Ascheman <rascheman@groupon.com>2016-10-18 12:42:02 -0700
committerRyan Ascheman <rascheman@groupon.com>2016-10-18 12:42:02 -0700
commit55b8b8477cc6aee82dfe6792eea4e589cac433d5 (patch)
treece5bfbd1b0ee59dbffdc2044bcf90c89614392ed /keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl
parentd1c70328f8d8ded6ce1e5422b468fc41ef315e7d (diff)
parent04df74f6360464661bcc1e6794e9fd3549084390 (diff)
Merge remote-tracking branch 'upstream/master'
* upstream/master: (1239 commits) Update ez.c removes planck/rev3 temporarily Move hand_swap_config to ez.c, removes error for infinity Update Makefile ergodox: Update algernon's keymap to v1.9 Added VS Code dir to .gitignore Support the Pegasus Hoof controller. [Jack & Erez] Simplifies and documents TO add readme use wait_ms instead of _delay_ms add messenger init keymap Add example keymap Adding whiskey_tango_foxtrot_capslock ergodox keymap Unicode map framework. Allow unicode up to 0xFFFFF using separate mapping table CIE 1931 dim curve Apply the dim curve to the RGB output Update the Cluecard readme files Tune snake and knight intervals for Cluecard Tunable RGB light intervals ...
Diffstat (limited to 'keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl')
-rw-r--r--keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c134
-rw-r--r--keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md50
-rw-r--r--keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.pngbin0 -> 130692 bytes
3 files changed, 184 insertions, 0 deletions
diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c
new file mode 100644
index 0000000000..9f41e51899
--- /dev/null
+++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c
@@ -0,0 +1,134 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+
+#define BASE 0
+#define SYMB 1
+#define PLVR 2
+#define ARRW 3
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [BASE] = KEYMAP(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F14,
+ KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, TG(PLVR),
+ CTL_T(KC_ESC), KC_A, KC_S, KC_E, KC_T, KC_G,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC,
+ KC_F1, KC_F2, KC_F3, KC_LALT, KC_LGUI,
+ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE,
+ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU,
+ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_FN1,
+ //
+ /*-*/ KC_F15, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
+ /*-*/ KC_BSLS, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS,
+ /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT,
+ /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ /*-*/ /*-*/ /*-*/ KC_RGUI, KC_RALT, KC_F4, KC_F5, KC_F6,
+ KC_MPLY, KC_MNXT,
+ KC_MPRV,
+ KC_FN3, KC_QUOT, KC_SPC
+ ),
+ [SYMB] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
+ KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
+ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
+ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
+ //
+ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/ KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
+ /*-*/ /*-*/ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS,
+ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [PLVR] = KEYMAP(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
+ KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
+ KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T,
+ KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO,
+ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
+ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
+ /*-*/ /*-*/ /*-*/ /*-*/ KC_C, KC_V, KC_NO,
+ //
+ /*-*/ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ /*-*/ KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO,
+ /*-*/ /*-*/ KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
+ /*-*/ KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ /*-*/ /*-*/ /*-*/ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_NO, KC_N, KC_M
+ ),
+ [ARRW] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_U, KC_MS_D, KC_MS_R,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
+ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
+ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
+ //
+ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/ /*-*/ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS,
+ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [SYMB] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Symbols Layer
+ [PLVR] = ACTION_LAYER_TAP_TOGGLE(PLVR), // FN2 - Momentary Plover Layer
+ [ARRW] = ACTION_LAYER_TAP_TOGGLE(ARRW), // FN3 - Momentary Arrows Layer
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+ uint8_t layer = biton32(layer_state);
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (layer) {
+ case SYMB:
+ ergodox_right_led_1_on();
+ break;
+ case PLVR:
+ ergodox_right_led_2_on();
+ break;
+ case ARRW:
+ ergodox_right_led_3_on();
+ break;
+ default:
+ break;
+ }
+};
diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md
new file mode 100644
index 0000000000..16cebd0912
--- /dev/null
+++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md
@@ -0,0 +1,50 @@
+# Roman's Layout
+
+There are four layers:
+
+- **BASE** is [Norman layout](https://normanlayout.info/).
+- **SYMB** for numbers and symbols.
+- **PLVR** is optimized for [Plover](http://www.openstenoproject.org).
+- **ARRW** for navigation (same fingers for arrows as HJKL on QWERTY).
+
+Looking for IJKL arrows? [Here we
+go](../romanzolotarev-norman-plover-osx/).
+
+[![keyboard-layout](romanzolotarev-norman-plover-osx-hjkl.png)](http://www.keyboard-layout-editor.com/#/gists/56ffedceb0668dda47c993e7271563e0)
+
+## Switching
+
+- Tap `SYMB` to toggle **SYMB**.
+- Tap `ARRW` to toggle **ARRW**.
+- Hold `SYMB` (or `ARRW`) to activate **SYMB** (or **ARRW**) while holding.
+- Tap `PLVR` to toggle **PLVR**.
+
+## LEDs
+
+- Red: SYMB is on.
+- Green: PLVR is on.
+- Blue: ARRW is on.
+
+## Functional Keys
+
+- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/).
+- Tap `F2` to copy screenshot to the clipboard.
+- Hold `SHIFT` and tap `F2` to save screenshot as a file.
+- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/).
+- Tap `F14`, `F15` to adjust display brightness.
+
+**IMPORTANT**: If you have another keyboard connected via Bluetooth, then
+`F14` and `F15` will not work. Turn off that Bluetooth keyboard. Re-plug
+you ErgoDox. Enjoy!
+
+## CTRL/ESC
+
+Both of those keys are frequently used in Vim.
+
+- Tap `CTRL/ESC` to send `ESC`.
+- Hold `CTRL/ESC` to use as `CTRL`.
+
+## Activate N-rollover
+
+- While in **BASE** hold left `SHIFT` and right `SHIRT` and then tap `N`.
+- Then you can activate **PLVR** and use ErgoDox EZ for steno.
diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png
new file mode 100644
index 0000000000..cdc535f79e
--- /dev/null
+++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png
Binary files differ