diff options
Diffstat (limited to 'keyboards/butterstick/keymaps/default/keymap.c')
-rw-r--r-- | keyboards/butterstick/keymaps/default/keymap.c | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/keyboards/butterstick/keymaps/default/keymap.c b/keyboards/butterstick/keymaps/default/keymap.c new file mode 100644 index 000000000..749e9ba07 --- /dev/null +++ b/keyboards/butterstick/keymaps/default/keymap.c | |||
@@ -0,0 +1,183 @@ | |||
1 | #include QMK_KEYBOARD_H | ||
2 | |||
3 | #include "sten.h" | ||
4 | /* | ||
5 | * Key names are inherited from steno machines | ||
6 | * .-----------------------------------------------------. | ||
7 | * | LSU | LFT | LP | LH | ST1 | RF | RP | RL | RT | RD | | ||
8 | * |-----------------------------------------------------| | ||
9 | * | LSD | LK | LW | LR | ST2 | RR | RB | RG | RS | RZ | | ||
10 | * '-----------------------------------------------------' | ||
11 | */ | ||
12 | |||
13 | // Function prefixes | ||
14 | #define MEDIA (LSD | LK | LW | LR) | ||
15 | #define FUNCT (LSD | LK | LP | LH) | ||
16 | #define MOVE (LSU | LFT | LP | LH) | ||
17 | #define SYMB (RD | RZ) | ||
18 | #define NUMA (LW | LR) | ||
19 | #define NUMB (RR | RB) | ||
20 | |||
21 | // QMK Layer Numbers | ||
22 | #define BASE 0 | ||
23 | #define GAME 1 | ||
24 | |||
25 | // Do not change QMK Layer 0! This is your main keyboard. | ||
26 | // Make your QMK modifications to the later layers, to add | ||
27 | // keys/customize on the first layer modify processQwerty(): | ||
28 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
29 | [BASE] = LAYOUT_butter( | ||
30 | STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, | ||
31 | STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR | ||
32 | ), | ||
33 | // I don't game don't roast me thanks | ||
34 | [GAME] = LAYOUT_butter( | ||
35 | KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_ENT, | ||
36 | KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TO(BASE) | ||
37 | ) | ||
38 | }; | ||
39 | |||
40 | // Note: You can only use basic keycodes here! | ||
41 | // P() is just a wrapper to make your life easier, any C code can be executed. | ||
42 | // Only the longest matched chord is run! | ||
43 | // | ||
44 | // http://docs.gboards.ca | ||
45 | uint32_t processQwerty(bool lookup) { | ||
46 | // SECRET AGENT CHORDS | ||
47 | P( LSU | LK | RS | RD, SEND_STRING(VERSION); SEND_STRING(__DATE__)); | ||
48 | P( LR | ST2| RR | RB, SEND(KC_BSPC)); | ||
49 | P( LSD | RZ, SEND(KC_SPC)); | ||
50 | |||
51 | // Dual chords | ||
52 | P( LP | LH, CLICK_MOUSE(KC_MS_BTN2)); | ||
53 | P( ST1 | RF, CLICK_MOUSE(KC_MS_BTN1)); | ||
54 | P( LSU | LFT, SEND(KC_ESC)); | ||
55 | P( LSD | LK, SEND(KC_LSFT)); | ||
56 | P( RZ | RS, SEND(KC_LSFT)); | ||
57 | P( ST2 | RR, SEND(KC_SPC)); | ||
58 | P( RP | RL, SEND(KC_LGUI)); | ||
59 | P( RT | RD, SEND(KC_LCTL)); | ||
60 | P( RL | RT, SEND(KC_LALT)); | ||
61 | P( LSU | LSD | LFT | LK, SEND(KC_LCTL)); | ||
62 | P( RS | RT | RD | RZ, SEND(KC_ENT)); | ||
63 | |||
64 | // Function Layer | ||
65 | P( FUNCT | RF, SEND(KC_F1)); | ||
66 | P( FUNCT | RP, SEND(KC_F2)); | ||
67 | P( FUNCT | RL, SEND(KC_F3)); | ||
68 | P( FUNCT | RT, SEND(KC_F4)); | ||
69 | P( FUNCT | RF | RR, SEND(KC_F5)); | ||
70 | P( FUNCT | RP | RB, SEND(KC_F6)); | ||
71 | P( FUNCT | RL | RG, SEND(KC_F7)); | ||
72 | P( FUNCT | RT | RS, SEND(KC_F8)); | ||
73 | P( FUNCT | RR, SEND(KC_F9)); | ||
74 | P( FUNCT | RB, SEND(KC_F10)); | ||
75 | P( FUNCT | RG, SEND(KC_F11)); | ||
76 | P( FUNCT | RS, SEND(KC_F12)); | ||
77 | |||
78 | // Movement Layer | ||
79 | P( MOVE | RF, SEND(KC_LEFT)); | ||
80 | P( MOVE | RP, SEND(KC_DOWN)); | ||
81 | P( MOVE | RL, SEND(KC_UP)); | ||
82 | P( MOVE | RT, SEND(KC_RIGHT)); | ||
83 | P( MOVE | ST1, SEND(KC_PGUP)); | ||
84 | P( MOVE | ST2, SEND(KC_PGDN)); | ||
85 | |||
86 | // Media Layer | ||
87 | P( MEDIA | RF, SEND(KC_MPRV)); | ||
88 | P( MEDIA | RP, SEND(KC_MPLY)); | ||
89 | P( MEDIA | RL, SEND(KC_MPLY)); | ||
90 | P( MEDIA | RT, SEND(KC_MNXT)); | ||
91 | P( MEDIA | RG, SEND(KC_VOLU)); | ||
92 | P( MEDIA | RB, SEND(KC_VOLD)); | ||
93 | P( MEDIA | RS, SEND(KC_MUTE)); | ||
94 | |||
95 | // Number Row, Right | ||
96 | P( NUMB | LSU, SEND(KC_1)); | ||
97 | P( NUMB | LFT, SEND(KC_2)); | ||
98 | P( NUMB | LP, SEND(KC_3)); | ||
99 | P( NUMB | LH, SEND(KC_4)); | ||
100 | P( NUMB | ST1, SEND(KC_5)); | ||
101 | P( NUMB | RF, SEND(KC_6)); | ||
102 | P( NUMB | RP, SEND(KC_7)); | ||
103 | P( NUMB | RL, SEND(KC_8)); | ||
104 | P( NUMB | RT, SEND(KC_9)); | ||
105 | P( NUMB | RD, SEND(KC_0)); | ||
106 | |||
107 | // Number Row, Left | ||
108 | P( NUMA | LSU, SEND(KC_1)); | ||
109 | P( NUMA | LFT, SEND(KC_2)); | ||
110 | P( NUMA | LP, SEND(KC_3)); | ||
111 | P( NUMA | LH, SEND(KC_4)); | ||
112 | P( NUMA | ST1, SEND(KC_5)); | ||
113 | P( NUMA | RF, SEND(KC_6)); | ||
114 | P( NUMA | RP, SEND(KC_7)); | ||
115 | P( NUMA | RL, SEND(KC_8)); | ||
116 | P( NUMA | RT, SEND(KC_9)); | ||
117 | P( NUMA | RD, SEND(KC_0)); | ||
118 | |||
119 | |||
120 | // Symbols and Numbers | ||
121 | P( SYMB | LP | LW, SEND(KC_LSFT); SEND(KC_9)); // ( | ||
122 | P( SYMB | LH | LR, SEND(KC_LSFT); SEND(KC_0)); // ) | ||
123 | P( SYMB | ST1 | ST2, SEND(KC_GRV)); // ` | ||
124 | P( SYMB | RR | RF, SEND(KC_LSFT); SEND(KC_3)); // # | ||
125 | P( SYMB | LFT | LK, SEND(KC_LSFT); SEND(KC_4)); // $ | ||
126 | P( SYMB | LSU, SEND(KC_LSFT); SEND(KC_1)); // ! | ||
127 | P( SYMB | LSD, SEND(KC_LSFT); SEND(KC_5)); // % | ||
128 | P( SYMB | LFT, SEND(KC_LSFT); SEND(KC_2)); // @ | ||
129 | P( SYMB | LK, SEND(KC_LSFT); SEND(KC_6)); // ^ | ||
130 | P( SYMB | LP, SEND(KC_LSFT); SEND(KC_LBRC)); // { | ||
131 | P( SYMB | LW, SEND(KC_LBRC)); | ||
132 | P( SYMB | LH, SEND(KC_LSFT); SEND(KC_RBRC)); // } | ||
133 | P( SYMB | LR, SEND(KC_RBRC)); | ||
134 | P( SYMB | ST1, SEND(KC_LSFT); SEND(KC_BSLS)); // | | ||
135 | P( SYMB | ST2, SEND(KC_LSFT); SEND(KC_GRV)); // ~ | ||
136 | P( SYMB | RP | RB, SEND(KC_QUOT)); | ||
137 | P( SYMB | RP | RG, SEND(KC_LSFT); SEND(KC_QUOT)); // " | ||
138 | P( SYMB | RF, SEND(KC_KP_PLUS)); | ||
139 | P( SYMB | RR, SEND(KC_LSFT); SEND(KC_7)); // & | ||
140 | P( SYMB | RP, SEND(KC_MINS)); | ||
141 | P( SYMB | RB, SEND(KC_EQL)); | ||
142 | P( SYMB | RL, SEND(KC_SLSH)); | ||
143 | P( SYMB | RG, SEND(KC_COMM)); | ||
144 | P( SYMB | RT, SEND(KC_PAST)); | ||
145 | P( SYMB | RS, SEND(KC_DOT)); | ||
146 | |||
147 | // Letters | ||
148 | P( LSU | LSD, SEND(KC_A)); | ||
149 | P( LFT | LK, SEND(KC_S)); | ||
150 | P( LP | LW, SEND(KC_D)); | ||
151 | P( LH | LR, SEND(KC_F)); | ||
152 | P( ST1 | ST2, SEND(KC_G)); | ||
153 | P( RF | RR, SEND(KC_H)); | ||
154 | P( RT | RS, SEND(KC_L)); | ||
155 | P( RD | RZ, SEND(KC_SCLN)); | ||
156 | P( RG | RL, SEND(KC_K)); | ||
157 | P( RP | RB, SEND(KC_J)); | ||
158 | P( LSU, SEND(KC_Q)); | ||
159 | P( LSD, SEND(KC_Z)); | ||
160 | P( LFT, SEND(KC_W)); | ||
161 | P( LK, SEND(KC_X)); | ||
162 | P( LP, SEND(KC_E)); | ||
163 | P( LW, SEND(KC_C)); | ||
164 | P( LH, SEND(KC_R)); | ||
165 | P( LR, SEND(KC_V)); | ||
166 | P( ST1, SEND(KC_T)); | ||
167 | P( ST2, SEND(KC_B)); | ||
168 | P( RF, SEND(KC_Y)); | ||
169 | P( RR, SEND(KC_N)); | ||
170 | P( RP, SEND(KC_U)); | ||
171 | P( RB, SEND(KC_M)); | ||
172 | P( RL, SEND(KC_I)); | ||
173 | P( RG, SEND(KC_COMM)); | ||
174 | P( RT, SEND(KC_O)); | ||
175 | P( RS, SEND(KC_DOT)); | ||
176 | P( RD, SEND(KC_P)); | ||
177 | P( RZ, SEND(KC_SLSH)); | ||
178 | |||
179 | return 0; | ||
180 | } | ||
181 | |||
182 | // Don't fuck with this, thanks. | ||
183 | size_t keymapsCount = sizeof(keymaps)/sizeof(keymaps[0]); | ||