aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/atreus62/keymaps/194h/config.h6
-rw-r--r--keyboards/atreus62/keymaps/194h/keymap.c160
-rw-r--r--keyboards/atreus62/keymaps/194h/rules.mk8
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
70const 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
111void 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
121LEADER_EXTERNS();
122
123// Runs constantly in the background, in a loop. Only supports basic keycodes.
124void 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 @@
1TAP_DANCE_ENABLE = no
2NKRO_ENABLE = true
3MOUSEKEY_ENABLE = no
4EXTRAKEY_ENABLE = yes
5CONSOLE_ENABLE = no
6KEY_LOCK_ENABLE = no
7AUTO_SHIFT_ENABLE = no
8LEADER_ENABLE = yes