1 /* Copyright 2015-2017 Jack Humbert
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 #include QMK_KEYBOARD_H
18 #include "keymap_steno.h"
20 // Custom Keycodes and Combinations Used
21 #define DEL_SHF SFT_T(KC_DEL)
22 #define QUAKE LCTL(KC_GRV)
24 #define WKSP_L LALT(LCTL(KC_LEFT))
25 #define WKSP_D LALT(LCTL(KC_DOWN))
26 #define WKSP_U LALT(LCTL(KC_UP))
27 #define WKSP_R LALT(LCTL(KC_RGHT))
29 extern keymap_config_t keymap_config
;
41 enum planck_keycodes
{
52 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
55 * ,-----------------------------------------------------------------------------------.
56 * | Tab | " ' | < , | > . | P | Y | F | G | C | R | L | ? / |
57 * |------+------+------+------+------+-------------+------+------+------+------+------|
58 * | Esc | A | O | E | U | I | D | H | T | N | S | _ - |
59 * |------+------+------+------+------+------|------+------+------+------+------+------|
60 * |Del/Sf| : ; | Q | J | K | X | B | M | W | V | Z | Bspc |
61 * |------+------+------+------+------+------+------+------+------+------+------+------|
62 * | Ctrl |Plover| GUI | Alt |Lower |Shift |Space |Raise | Alt | GUI | Fn |Enter |
63 * `-----------------------------------------------------------------------------------'
65 [_BASE
] = LAYOUT_planck_grid(
66 KC_TAB
, KC_QUOT
, KC_COMM
, KC_DOT
, KC_P
, KC_Y
, KC_F
, KC_G
, KC_C
, KC_R
, KC_L
, KC_SLSH
,
67 KC_ESC
, KC_A
, KC_O
, KC_E
, KC_U
, KC_I
, KC_D
, KC_H
, KC_T
, KC_N
, KC_S
, KC_MINS
,
68 DEL_SHF
, KC_SCLN
, KC_Q
, KC_J
, KC_K
, KC_X
, KC_B
, KC_M
, KC_W
, KC_V
, KC_Z
, KC_BSPC
,
69 KC_LCTL
, PLOVER
, KC_LGUI
, KC_LALT
, LOWER
, KC_LSFT
, KC_SPC
, RAISE
, KC_RALT
, KC_RGUI
, FUNC
, KC_ENT
73 * ,-----------------------------------------------------------------------------------.
74 * | | | | | | | | Home |PgDwn | PgUp | End | |
75 * |------+------+------+------+------+-------------+------+------+------+------+------|
76 * | |PrScr | Menu | | | | | Left | Down | Up |Right | |
77 * |------+------+------+------+------+------|------+------+------+------+------+------|
78 * | |CapsLk|NumLck| Ins | | | |WkLeft|WkDown| WkUp |WkRigh| |
79 * |------+------+------+------+------+------+------+------+------+------+------+------|
80 * | | | | | | | |Raise | | | | |
81 * `-----------------------------------------------------------------------------------'
83 [_LOWER
] = LAYOUT_planck_grid(
84 XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, KC_HOME
, KC_PGDN
, KC_PGUP
, KC_END
, XXXXXXX
,
85 XXXXXXX
, KC_PSCR
, KC_MENU
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, KC_LEFT
, KC_DOWN
, KC_UP
, KC_RGHT
, XXXXXXX
,
86 XXXXXXX
, KC_CAPS
, KC_LNUM
, KC_INS
, XXXXXXX
, XXXXXXX
, XXXXXXX
, WKSP_L
, WKSP_D
, WKSP_U
, WKSP_R
, XXXXXXX
,
87 _______
, XXXXXXX
, _______
, _______
, _______
, _______
, XXXXXXX
, _______
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
91 * ,-----------------------------------------------------------------------------------.
92 * |Quake | ` | ~ | \ | | | ( | ) | 7 | 8 | 9 | / | = |
93 * |------+------+------+------+------+-------------+------+------+------+------+------|
94 * | | ! | @ | # | $ | { | } | 4 | 5 | 6 | * | + |
95 * |------+------+------+------+------+------|------+------+------+------+------+------|
96 * | | % | ^ | & | * | [ | ] | 1 | 2 | 3 | - |Bkspc |
97 * |------+------+------+------+------+------+------+------+------+------+------+------|
98 * | | | | |Lower | < | > | | 0 | . | , | |
99 * `-----------------------------------------------------------------------------------'
101 [_RAISE
] = LAYOUT_planck_grid(
102 QUAKE
, KC_GRV
, KC_TILD
, KC_BSLS
, KC_PIPE
, KC_LPRN
, KC_RPRN
, KC_7
, KC_8
, KC_9
, KC_SLSH
, KC_EQL
,
103 XXXXXXX
, KC_EXLM
, KC_AT
, KC_HASH
, KC_DLR
, KC_LCBR
, KC_RCBR
, KC_4
, KC_5
, KC_6
, KC_ASTR
, KC_PLUS
,
104 XXXXXXX
, KC_PERC
, KC_CIRC
, KC_AMPR
, KC_ASTR
, KC_LBRC
, KC_RBRC
, KC_1
, KC_2
, KC_3
, KC_MINS
, KC_BSPC
,
105 _______
, XXXXXXX
, _______
, _______
, _______
, KC_LABK
, KC_RABK
, _______
, KC_0
, KC_DOT
, KC_COMM
, XXXXXXX
109 * ,-----------------------------------------------------------------------------------.
110 * | |Sleep |Prev-W|Ply/Ps|Next-W| | | F9 | F10 | F11 | F12 | |
111 * |------+------+------+------+------+-------------+------+------+------+------+------|
112 * | | Wake | Mute | Vol- | Vol+ | | | F5 | F6 | F7 | F8 | |
113 * |------+------+------+------+------+------|------+------+------+------+------+------|
114 * | |Power |Prev-M|Ply/Ps|Next-M| | | F1 | F2 | F3 | F4 | |
115 * |------+------+------+------+------+------+------+------+------+------+------+------|
116 * | | | | | | | | | | | | |
117 * `-----------------------------------------------------------------------------------'
119 [_FUNC
] = LAYOUT_planck_grid(
120 XXXXXXX
, KC_SLEP
, KC_MPRV
, KC_MPLY
, KC_MNXT
, XXXXXXX
, XXXXXXX
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, XXXXXXX
,
121 XXXXXXX
, KC_WAKE
, KC_MUTE
, KC_VOLD
, KC_VOLU
, XXXXXXX
, XXXXXXX
, KC_F5
, KC_F6
, KC_F7
, KC_F8
, XXXXXXX
,
122 XXXXXXX
, KC_PWR
, KC_MRWD
, KC_MPLY
, KC_MFFD
, XXXXXXX
, XXXXXXX
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, XXXXXXX
,
123 _______
, _______
, _______
, _______
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, _______
, XXXXXXX
126 /* Mouse (Not Reachable on Planck)
127 * ,-----------------------------------------------------------------------------------.
128 * | | | | | | | | | | | | |
129 * |------+------+------+------+------+-------------+------+------+------+------+------|
130 * | | |Click1|Click3|Click2| | |MouseL|MouseD|MouseU|MouseR| |
131 * |------+------+------+------+------+------|------+------+------+------+------+------|
132 * | | |Accel0|Accel1|Accel2| | |ScrllL|ScrllD|ScrllU|ScrllR| |
133 * |------+------+------+------+------+------+------+------+------+------+------+------|
134 * | | | | | | | | | | | | |
135 * `-----------------------------------------------------------------------------------'
137 [_MOUSE
] = LAYOUT_planck_grid(
138 XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
,
139 XXXXXXX
, XXXXXXX
, KC_BTN1
, KC_BTN3
, KC_BTN2
, XXXXXXX
, XXXXXXX
, KC_MS_L
, KC_MS_D
, KC_MS_U
, KC_MS_R
, XXXXXXX
,
140 XXXXXXX
, XXXXXXX
, KC_ACL0
, KC_ACL1
, KC_ACL2
, XXXXXXX
, XXXXXXX
, KC_WH_L
, KC_WH_D
, KC_WH_U
, KC_WH_R
, XXXXXXX
,
141 _______
, _______
, _______
, _______
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, _______
, XXXXXXX
144 /* Plover layer (http://opensteno.org)
145 * ,-----------------------------------------------------------------------------------.
146 * | # | # | # | # | # | # | # | # | # | # | # | # |
147 * |------+------+------+------+------+-------------+------+------+------+------+------|
148 * | FN | S | T | P | H | * | * | F | P | L | T | D |
149 * |------+------+------+------+------+------|------+------+------+------+------+------|
150 * | | S | K | W | R | * | * | R | B | G | S | Z |
151 * |------+------+------+------+------+------+------+------+------+------+------+------|
152 * | Exit | | | A | O | | | E | U | PWR | RES1 | RES2 |
153 * `-----------------------------------------------------------------------------------'
156 [_PLOVER
] = LAYOUT_planck_grid(
157 STN_N1
, STN_N2
, STN_N3
, STN_N4
, STN_N5
, STN_N6
, STN_N7
, STN_N8
, STN_N9
, STN_NA
, STN_NB
, STN_NC
,
158 STN_FN
, STN_S1
, STN_TL
, STN_PL
, STN_HL
, STN_ST1
, STN_ST3
, STN_FR
, STN_PR
, STN_LR
, STN_TR
, STN_DR
,
159 XXXXXXX
, STN_S2
, STN_KL
, STN_WL
, STN_RL
, STN_ST2
, STN_ST4
, STN_RR
, STN_BR
, STN_GR
, STN_SR
, STN_ZR
,
160 EXT_PLV
, XXXXXXX
, XXXXXXX
, STN_A
, STN_O
, XXXXXXX
, XXXXXXX
, STN_E
, STN_U
, STN_PWR
, STN_RE1
, STN_RE2
163 /* Adjust (Lower + Raise)
164 * ,-----------------------------------------------------------------------------------.
165 * | | Reset| | | | | | | | | | Del |
166 * |------+------+------+------+------+-------------+------+------+------+------+------|
167 * | | | |Aud on|Audoff|AGnorm|AGswap|RGBTog|RGBMod| | | |
168 * |------+------+------+------+------+------|------+------+------+------+------+------|
169 * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|Light-|Light+| | | |
170 * |------+------+------+------+------+------+------+------+------+------+------+------|
171 * | | | | | | | | | | | | |
172 * `-----------------------------------------------------------------------------------'
174 [_ADJUST
] = LAYOUT_planck_grid(
175 _______
, RESET
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, KC_DEL
,
176 _______
, _______
, _______
, AU_ON
, AU_OFF
, AG_NORM
, AG_SWAP
, RGB_TOG
, RGB_MOD
, _______
, _______
, _______
,
177 _______
, MUV_DE
, MUV_IN
, MU_ON
, MU_OFF
, MI_ON
, MI_OFF
, RGB_VAD
, RGB_VAI
, _______
, _______
, _______
,
178 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
184 float plover_song
[][2] = SONG(PLOVER_SOUND
);
185 float plover_gb_song
[][2] = SONG(PLOVER_GOODBYE_SOUND
);
188 bool process_record_user(uint16_t keycode
, keyrecord_t
*record
) {
191 if (record
->event
.pressed
) {
193 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
196 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
201 if (record
->event
.pressed
) {
203 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
206 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
211 if (record
->event
.pressed
) {
219 if (!record
->event
.pressed
) {
222 PLAY_SONG(plover_song
);
229 if (record
->event
.pressed
) {
231 PLAY_SONG(plover_gb_song
);
238 if (record
->event
.pressed
) {
249 void matrix_init_user() {
250 steno_set_mode(STENO_MODE_GEMINI
);