diff options
| -rw-r--r-- | keyboards/atreus62/keymaps/194h/config.h | 6 | ||||
| -rw-r--r-- | keyboards/atreus62/keymaps/194h/keymap.c | 160 | ||||
| -rw-r--r-- | keyboards/atreus62/keymaps/194h/rules.mk | 8 |
3 files changed, 174 insertions, 0 deletions
diff --git a/keyboards/atreus62/keymaps/194h/config.h b/keyboards/atreus62/keymaps/194h/config.h new file mode 100644 index 000000000..f5306a07f --- /dev/null +++ b/keyboards/atreus62/keymaps/194h/config.h | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | #pragma once | ||
| 2 | #define ONESHOT_TIMEOUT 3000 | ||
| 3 | #define TAPPING_TERM 200 | ||
| 4 | #define FORCE_NKRO | ||
| 5 | #define LEADER_TIMEOUT 1000 | ||
| 6 | #define TAPPING_TOGGLE 3 | ||
diff --git a/keyboards/atreus62/keymaps/194h/keymap.c b/keyboards/atreus62/keymaps/194h/keymap.c new file mode 100644 index 000000000..9b397fce4 --- /dev/null +++ b/keyboards/atreus62/keymaps/194h/keymap.c | |||
| @@ -0,0 +1,160 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | |||
| 3 | //The current Nordic and Norwegian layout files are a mess. I'll do it myself: | ||
| 4 | //Norwegian | ||
| 5 | #define NO_AE KC_QUOT // Æ | ||
| 6 | #define NO_AO KC_LBRC // Å | ||
| 7 | #define NO_BSLS KC_EQL // Backslash | ||
| 8 | #define NO_LT KC_NUBS // < | ||
| 9 | #define NO_MINS KC_SLSH // - | ||
| 10 | #define NO_OE KC_SCLN // Ø | ||
| 11 | #define NO_PIPE KC_GRV // | | ||
| 12 | #define NO_PLUS KC_MINS // + | ||
| 13 | #define NO_QUOT KC_NUHS // ' | ||
| 14 | #define NO_UMLA KC_RBRC // ¨ | ||
| 15 | //Norwegian - Modifier dependant definitions | ||
| 16 | #define NO_EXLM LSFT(KC_1) // ! | ||
| 17 | #define NO_DQT LSFT(KC_2) // " | ||
| 18 | #define NO_AT RALT(KC_2) // @ | ||
| 19 | #define NO_HASH LSFT(KC_3) // # | ||
| 20 | #define NO_EUR LSFT(KC_4) // € | ||
| 21 | #define NO_DLR RALT(KC_4) // $ | ||
| 22 | #define NO_PERC LSFT(KC_5) // % | ||
| 23 | #define NO_AND LSFT(KC_6) // & | ||
| 24 | #define NO_SLSH LSFT(KC_7) // / | ||
| 25 | #define NO_PO LSFT(KC_8) // ( | ||
| 26 | #define NO_PC LSFT(KC_9) // ) | ||
| 27 | #define NO_EQL LSFT(KC_0) // = | ||
| 28 | #define NO_LCBR RALT(KC_7) // { | ||
| 29 | #define NO_LBRC RALT(KC_8) // [ | ||
| 30 | #define NO_RBRC RALT(KC_9) // ] | ||
| 31 | #define NO_RCBR RALT(KC_0) // } | ||
| 32 | #define NO_COLN LSFT(KC_DOT) // : | ||
| 33 | #define NO_SCLN LSFT(KC_COMM) // ; | ||
| 34 | #define NO_MU RALT(KC_M) // µ | ||
| 35 | #define NO_EURO RALT(KC_E) // € | ||
| 36 | #define NO_SECT LSFT(KC_GRV) // § | ||
| 37 | #define NO_GERC RALT(KC_COMM) // ¸ | ||
| 38 | #define NO_QUAR LSFT(RALT(KC_4)) // ¼ | ||
| 39 | //Norwegian layout - dependant on previous definitions | ||
| 40 | #define NO_UNDS LSFT(NO_MINS) // _ | ||
| 41 | #define NO_QUES LSFT(NO_PLUS) // ? | ||
| 42 | #define NO_GRAV LSFT(NO_BSLS) // ` | ||
| 43 | #define NO_GT LSFT(NO_LT) // > | ||
| 44 | #define NO_HALF RALT(NO_LT) // ½ | ||
| 45 | #define NO_HAT LSFT(NO_UMLA) // ^ | ||
| 46 | #define NO_ASTR LSFT(NO_QUOT) // * | ||
| 47 | #define NO_TILD RALT(NO_UMLA) // ~ | ||
| 48 | |||
| 49 | //One Shot Modifier | ||
| 50 | #define OSM_LCTL OSM(MOD_LCTL) | ||
| 51 | #define OSM_LALT OSM(MOD_LALT) | ||
| 52 | #define OSM_LSFT OSM(MOD_LSFT) | ||
| 53 | #define OSM_LGUI OSM(MOD_LGUI) | ||
| 54 | #define OSM_RCTL OSM(MOD_RCTL) | ||
| 55 | #define OSM_RALT OSM(MOD_RALT) | ||
| 56 | #define OSM_RSFT OSM(MOD_RSFT) | ||
| 57 | #define OSM_RGUI OSM(MOD_RGUI) | ||
| 58 | |||
| 59 | //Layers | ||
| 60 | #define L1 0 | ||
| 61 | #define L2 1 | ||
| 62 | #define L3 2 | ||
| 63 | #define L4 3 | ||
| 64 | #define L5 4 | ||
| 65 | |||
| 66 | // Momentary switch to layer - One Shot Layer | ||
| 67 | #define OSL_L3 OSL(L3) | ||
| 68 | #define OSL_L4 OSL(L4) | ||
| 69 | |||
| 70 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 71 | |||
| 72 | [L1] = LAYOUT( | ||
| 73 | KC_LGUI, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RGUI, | ||
| 74 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_DQT, | ||
| 75 | KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, NO_SCLN, NO_QUOT, | ||
| 76 | OSM_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, NO_MINS, OSM_RSFT, | ||
| 77 | CTL_T(KC_ESC), MO(L5), KC_LEAD, OSM_LALT, MO(L4), OSL_L3, KC_SPC, KC_ENT, OSL_L3, MO(L4), OSM_RALT, NO_EQL, NO_PLUS, KC_RCTL | ||
| 78 | ), | ||
| 79 | [L2] = LAYOUT( | ||
| 80 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 81 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NO_AO, | ||
| 82 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NO_OE, NO_AE, | ||
| 83 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 84 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 85 | ), | ||
| 86 | [L3] = LAYOUT( | ||
| 87 | NO_LBRC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NO_RBRC, | ||
| 88 | NO_LCBR, XXXXXXX, XXXXXXX, NO_AT, XXXXXXX, NO_TILD, NO_QUES, NO_EXLM, NO_PIPE, XXXXXXX, XXXXXXX, NO_RCBR, | ||
| 89 | _______, NO_ASTR, NO_BSLS, NO_DLR, NO_HASH, XXXXXXX, NO_HAT, XXXXXXX, NO_COLN, NO_SLSH, NO_SCLN, NO_QUOT, | ||
| 90 | NO_PO, KC_0, NO_SECT, NO_PERC, XXXXXXX, NO_GRAV, NO_AND, NO_UMLA, NO_LT, NO_GT, NO_UNDS, NO_PC, | ||
| 91 | XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX | ||
| 92 | ), | ||
| 93 | [L4] = LAYOUT( | ||
| 94 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 95 | XXXXXXX, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX, XXXXXXX, | ||
| 96 | _______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, KC_DEL, | ||
| 97 | XXXXXXX, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, XXXXXXX, KC_APP, XXXXXXX, XXXXXXX, KC_VOLD, XXXXXXX, | ||
| 98 | OSM_LCTL, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE, KC_VOLU, OSM_RCTL | ||
| 99 | ), | ||
| 100 | [L5] = LAYOUT( | ||
| 101 | XXXXXXX, TO(L1), TO(L2), TO(L3), TO(L4), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 102 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NO_AO, | ||
| 103 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NO_OE, NO_AE, | ||
| 104 | XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 105 | XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX | ||
| 106 | ) | ||
| 107 | }; | ||
| 108 | |||
| 109 | |||
| 110 | // Unicode Linux | ||
| 111 | void matrix_init_user(void) { | ||
| 112 | set_unicode_input_mode(UC_LNX); | ||
| 113 | }; | ||
| 114 | |||
| 115 | |||
| 116 | #define TAP_ONCE(code) \ | ||
| 117 | register_code (code); \ | ||
| 118 | unregister_code (code) | ||
| 119 | |||
| 120 | |||
| 121 | LEADER_EXTERNS(); | ||
| 122 | |||
| 123 | // Runs constantly in the background, in a loop. Only supports basic keycodes. | ||
| 124 | void matrix_scan_user(void) { | ||
| 125 | LEADER_DICTIONARY() { | ||
| 126 | leading = false; | ||
| 127 | leader_end(); | ||
| 128 | |||
| 129 | //probably useless in practice, but cool | ||
| 130 | SEQ_ONE_KEY (KC_P) { | ||
| 131 | tap_random_base64(); | ||
| 132 | tap_random_base64(); | ||
| 133 | tap_random_base64(); | ||
| 134 | tap_random_base64(); | ||
| 135 | tap_random_base64(); | ||
| 136 | tap_random_base64(); | ||
| 137 | tap_random_base64(); | ||
| 138 | tap_random_base64(); | ||
| 139 | } | ||
| 140 | |||
| 141 | SEQ_ONE_KEY (KC_G) { | ||
| 142 | SEND_STRING("grep something !"); | ||
| 143 | register_code(KC_RALT); | ||
| 144 | TAP_ONCE(KC_4); | ||
| 145 | unregister_code(KC_RALT); | ||
| 146 | } | ||
| 147 | SEQ_ONE_KEY (KC_T) { | ||
| 148 | SEND_STRING("tail "); | ||
| 149 | TAP_ONCE(KC_SLSH); | ||
| 150 | SEND_STRING("f !"); | ||
| 151 | register_code(KC_RALT); | ||
| 152 | TAP_ONCE(KC_4); | ||
| 153 | unregister_code(KC_RALT); | ||
| 154 | } | ||
| 155 | SEQ_ONE_KEY (KC_S) { | ||
| 156 | SEND_STRING("sudo !!"); | ||
| 157 | TAP_ONCE(KC_ENT); | ||
| 158 | } | ||
| 159 | } | ||
| 160 | } | ||
diff --git a/keyboards/atreus62/keymaps/194h/rules.mk b/keyboards/atreus62/keymaps/194h/rules.mk new file mode 100644 index 000000000..5246909a3 --- /dev/null +++ b/keyboards/atreus62/keymaps/194h/rules.mk | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | TAP_DANCE_ENABLE = no | ||
| 2 | NKRO_ENABLE = true | ||
| 3 | MOUSEKEY_ENABLE = no | ||
| 4 | EXTRAKEY_ENABLE = yes | ||
| 5 | CONSOLE_ENABLE = no | ||
| 6 | KEY_LOCK_ENABLE = no | ||
| 7 | AUTO_SHIFT_ENABLE = no | ||
| 8 | LEADER_ENABLE = yes | ||
