aboutsummaryrefslogtreecommitdiff
path: root/keyboards/butterstick/keymaps/default/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/butterstick/keymaps/default/keymap.c')
-rw-r--r--keyboards/butterstick/keymaps/default/keymap.c183
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():
28const 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
45uint32_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.
183size_t keymapsCount = sizeof(keymaps)/sizeof(keymaps[0]);