forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request qmk#205 from romanzolotarev/master
Add Roman's Layout
- Loading branch information
Showing
4 changed files
with
1,309 additions
and
0 deletions.
There are no files selected for viewing
134 changes: 134 additions & 0 deletions
134
keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,134 @@ | ||
#include "ergodox_ez.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_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, | ||
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, 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_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, | ||
/*-*/ /*-*/ KC_TRNS, KC_LEFT, KC_DOWN, 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; | ||
} | ||
}; |
43 changes: 43 additions & 0 deletions
43
keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# 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. | ||
|
||
[![keyboard-layout](romanzolotarev-norman-plover-osx.png)](http://www.keyboard-layout-editor.com/#/gists/8ebcb701ecb763944417) | ||
|
||
## 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. | ||
|
||
## 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. |
Oops, something went wrong.