diff options
| -rw-r--r-- | keyboards/preonic/keymaps/shwilliam/config.h | 19 | ||||
| -rw-r--r-- | keyboards/preonic/keymaps/shwilliam/keymap.c | 299 | ||||
| -rw-r--r-- | keyboards/preonic/keymaps/shwilliam/readme.md | 40 | ||||
| -rw-r--r-- | keyboards/preonic/keymaps/shwilliam/rules.mk | 1 |
4 files changed, 359 insertions, 0 deletions
diff --git a/keyboards/preonic/keymaps/shwilliam/config.h b/keyboards/preonic/keymaps/shwilliam/config.h new file mode 100644 index 000000000..959f94fe2 --- /dev/null +++ b/keyboards/preonic/keymaps/shwilliam/config.h | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | #pragma once | ||
| 2 | |||
| 3 | #ifdef AUDIO_ENABLE | ||
| 4 | #define STARTUP_SONG SONG(PREONIC_SOUND) | ||
| 5 | // #define STARTUP_SONG SONG(NO_SOUND) | ||
| 6 | #endif | ||
| 7 | |||
| 8 | #define MUSIC_MASK (keycode != KC_NO) | ||
| 9 | |||
| 10 | /* prevent use of disabled MIDI features in the keymap */ | ||
| 11 | //#define MIDI_ENABLE_STRICT 1 | ||
| 12 | |||
| 13 | #define MIDI_BASIC | ||
| 14 | |||
| 15 | /* enable advanced MIDI features */ | ||
| 16 | //#define MIDI_ADVANCED | ||
| 17 | |||
| 18 | /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ | ||
| 19 | //#define MIDI_TONE_KEYCODE_OCTAVES 2 | ||
diff --git a/keyboards/preonic/keymaps/shwilliam/keymap.c b/keyboards/preonic/keymaps/shwilliam/keymap.c new file mode 100644 index 000000000..c9d6cbab4 --- /dev/null +++ b/keyboards/preonic/keymaps/shwilliam/keymap.c | |||
| @@ -0,0 +1,299 @@ | |||
| 1 | /* Copyright 2020 William Lindvall | ||
| 2 | * | ||
| 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. | ||
| 7 | * | ||
| 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. | ||
| 12 | * | ||
| 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/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #include QMK_KEYBOARD_H | ||
| 18 | |||
| 19 | enum custom_keycodes { | ||
| 20 | LIQUOT = SAFE_RANGE, | ||
| 21 | RIQUOT, | ||
| 22 | LQUOT, | ||
| 23 | RQUOT, | ||
| 24 | LTITLE, | ||
| 25 | RTITLE, | ||
| 26 | TBULLET, | ||
| 27 | FBULLET, | ||
| 28 | FN_ARROW, | ||
| 29 | MAIL, | ||
| 30 | GITHUB, | ||
| 31 | HEART, | ||
| 32 | E_LCRY, | ||
| 33 | E_FLOWER, | ||
| 34 | E_SHEART, | ||
| 35 | E_KISS, | ||
| 36 | E_PHEART, | ||
| 37 | E_NOGOOD, | ||
| 38 | E_PARTY, | ||
| 39 | E_ROCKET, | ||
| 40 | E_SHRUG, | ||
| 41 | E_WIZARD, | ||
| 42 | E_OKBUST, | ||
| 43 | E_OKHAND, | ||
| 44 | E_SLEEP, | ||
| 45 | E_HUNNED, | ||
| 46 | E_2HEART | ||
| 47 | }; | ||
| 48 | |||
| 49 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 50 | switch (keycode) { | ||
| 51 | case LIQUOT: | ||
| 52 | if (record->event.pressed) { | ||
| 53 | SEND_STRING(SS_LALT("300a")); | ||
| 54 | } | ||
| 55 | return false; | ||
| 56 | case RIQUOT: | ||
| 57 | if (record->event.pressed) { | ||
| 58 | SEND_STRING(SS_LALT("300b")); | ||
| 59 | } | ||
| 60 | return false; | ||
| 61 | case LQUOT: | ||
| 62 | if (record->event.pressed) { | ||
| 63 | SEND_STRING(SS_LALT("300c")); | ||
| 64 | } | ||
| 65 | return false; | ||
| 66 | case RQUOT: | ||
| 67 | if (record->event.pressed) { | ||
| 68 | SEND_STRING(SS_LALT("300d")); | ||
| 69 | } | ||
| 70 | return false; | ||
| 71 | case LTITLE: | ||
| 72 | if (record->event.pressed) { | ||
| 73 | SEND_STRING(SS_LALT("3010")); | ||
| 74 | } | ||
| 75 | return false; | ||
| 76 | case RTITLE: | ||
| 77 | if (record->event.pressed) { | ||
| 78 | SEND_STRING(SS_LALT("3011")); | ||
| 79 | } | ||
| 80 | return false; | ||
| 81 | case TBULLET: | ||
| 82 | if (record->event.pressed) { | ||
| 83 | SEND_STRING(SS_LALT("2023")); | ||
| 84 | } | ||
| 85 | return false; | ||
| 86 | case FBULLET: | ||
| 87 | if (record->event.pressed) { | ||
| 88 | SEND_STRING(SS_LALT("2055")); | ||
| 89 | } | ||
| 90 | return false; | ||
| 91 | case MAIL: | ||
| 92 | if (record->event.pressed) { | ||
| 93 | SEND_STRING("w-lindvall@outlook.com"); | ||
| 94 | } | ||
| 95 | return false; | ||
| 96 | case GITHUB: | ||
| 97 | if (record->event.pressed) { | ||
| 98 | SEND_STRING("https://github.com/shwilliam"); | ||
| 99 | } | ||
| 100 | return false; | ||
| 101 | case FN_ARROW: | ||
| 102 | if (record->event.pressed) { | ||
| 103 | SEND_STRING("=>"); | ||
| 104 | } | ||
| 105 | return false; | ||
| 106 | case HEART: | ||
| 107 | if (record->event.pressed) { | ||
| 108 | SEND_STRING(SS_LALT("2661")); | ||
| 109 | } | ||
| 110 | return false; | ||
| 111 | case E_LCRY: | ||
| 112 | if (record->event.pressed) { | ||
| 113 | SEND_STRING(SS_LALT("D83D+DE02")); | ||
| 114 | } | ||
| 115 | return false; | ||
| 116 | case E_FLOWER: | ||
| 117 | if (record->event.pressed) { | ||
| 118 | SEND_STRING(SS_LALT("D83C+DF38")); | ||
| 119 | } | ||
| 120 | return false; | ||
| 121 | case E_SHEART: | ||
| 122 | if (record->event.pressed) { | ||
| 123 | SEND_STRING(SS_LALT("D83D+DC96")); | ||
| 124 | } | ||
| 125 | return false; | ||
| 126 | case E_KISS: | ||
| 127 | if (record->event.pressed) { | ||
| 128 | SEND_STRING(SS_LALT("D83D+DE18")); | ||
| 129 | } | ||
| 130 | return false; | ||
| 131 | case E_PHEART: | ||
| 132 | if (record->event.pressed) { | ||
| 133 | SEND_STRING(SS_LALT("D83D+DC9C")); | ||
| 134 | } | ||
| 135 | return false; | ||
| 136 | case E_NOGOOD: | ||
| 137 | if (record->event.pressed) { | ||
| 138 | SEND_STRING(SS_LALT("D83D+DE45")); | ||
| 139 | } | ||
| 140 | return false; | ||
| 141 | case E_PARTY: | ||
| 142 | if (record->event.pressed) { | ||
| 143 | SEND_STRING(SS_LALT("D83C+DF8A")); | ||
| 144 | } | ||
| 145 | return false; | ||
| 146 | case E_ROCKET: | ||
| 147 | if (record->event.pressed) { | ||
| 148 | SEND_STRING(SS_LALT("D83D+DE80")); | ||
| 149 | } | ||
| 150 | return false; | ||
| 151 | case E_SHRUG: | ||
| 152 | if (record->event.pressed) { | ||
| 153 | SEND_STRING(SS_LALT("D83E+DD37")); | ||
| 154 | } | ||
| 155 | return false; | ||
| 156 | case E_WIZARD: | ||
| 157 | if (record->event.pressed) { | ||
| 158 | SEND_STRING(SS_LALT("D83E+DDD9")); | ||
| 159 | } | ||
| 160 | return false; | ||
| 161 | case E_OKBUST: | ||
| 162 | if (record->event.pressed) { | ||
| 163 | SEND_STRING(SS_LALT("D83D+DE46")); | ||
| 164 | } | ||
| 165 | return false; | ||
| 166 | case E_OKHAND: | ||
| 167 | if (record->event.pressed) { | ||
| 168 | SEND_STRING(SS_LALT("D83D+DC4C")); | ||
| 169 | } | ||
| 170 | return false; | ||
| 171 | case E_SLEEP: | ||
| 172 | if (record->event.pressed) { | ||
| 173 | SEND_STRING(SS_LALT("D83D+DE34")); | ||
| 174 | } | ||
| 175 | return false; | ||
| 176 | case E_HUNNED: | ||
| 177 | if (record->event.pressed) { | ||
| 178 | SEND_STRING(SS_LALT("D83D+DCAF")); | ||
| 179 | } | ||
| 180 | return false; | ||
| 181 | case E_2HEART: | ||
| 182 | if (record->event.pressed) { | ||
| 183 | SEND_STRING(SS_LALT("D83D+DC95")); | ||
| 184 | } | ||
| 185 | return false; | ||
| 186 | } | ||
| 187 | return true; | ||
| 188 | }; | ||
| 189 | |||
| 190 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 191 | |||
| 192 | /* qwerty | ||
| 193 | * ,-----------------------------------------------------------------------------------. | ||
| 194 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | | ||
| 195 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 196 | * | Tab | q | w | e | r | t | y | u | i | o | p | Bksp | | ||
| 197 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 198 | * | H/Esc| a | s | d | f | g | h | j | k | l | ' | Enter| | ||
| 199 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 200 | * | Shift| z | x | c | v | b | n | m | , | . | / | ; | | ||
| 201 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 202 | * | PDown| PUp | Alt | OS | Opt | Raise| Space| Lower| Left | Down | Up | Right| | ||
| 203 | * `-----------------------------------------------------------------------------------' | ||
| 204 | */ | ||
| 205 | |||
| 206 | [0] = LAYOUT_preonic_grid( | ||
| 207 | KC_GRV ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_DEL, | ||
| 208 | KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSPC, | ||
| 209 | C_S_T(KC_ESC),KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_J ,KC_K ,KC_L ,KC_QUOT ,KC_ENT, | ||
| 210 | KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_SCLN, | ||
| 211 | KC_PGDN ,KC_PGUP ,KC_LALT ,KC_LGUI ,KC_LCTL ,MO(1) ,KC_SPC ,MO(2) ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT | ||
| 212 | ), | ||
| 213 | |||
| 214 | /* raise | ||
| 215 | * ,-----------------------------------------------------------------------------------. | ||
| 216 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) |SRight| | ||
| 217 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 218 | * | | Q | W | E | R | T | Y | U | I | O | P | SLeft| | ||
| 219 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 220 | * | | A | S | D | F | G | H | J | K | L | " | \ | | ||
| 221 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 222 | * | Emoji| Z | X | C | V | B | N | M | < | > | ? | : | | ||
| 223 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 224 | * | End | Home | ShAlt| ShOS | ShOpt|~~~~~~| Space| | | BDown| BUp | | | ||
| 225 | * `-----------------------------------------------------------------------------------' | ||
| 226 | */ | ||
| 227 | |||
| 228 | [1] = LAYOUT_preonic_grid( | ||
| 229 | KC_TILD ,KC_EXLM ,KC_AT ,KC_HASH ,KC_DLR ,KC_PERC ,KC_CIRC ,KC_AMPR ,KC_ASTR ,KC_LPRN ,KC_RPRN ,SGUI(KC_RGHT), | ||
| 230 | KC_NO ,LSFT(KC_Q),LSFT(KC_W) ,LSFT(KC_E) ,LSFT(KC_R) ,LSFT(KC_T),LSFT(KC_Y),LSFT(KC_U),LSFT(KC_I),LSFT(KC_O),LSFT(KC_P),SGUI(KC_LEFT), | ||
| 231 | KC_NO ,LSFT(KC_A),LSFT(KC_S) ,LSFT(KC_D) ,LSFT(KC_F) ,LSFT(KC_G),LSFT(KC_H),LSFT(KC_J),LSFT(KC_K),LSFT(KC_L),KC_DQUO ,KC_BSLS, | ||
| 232 | OSL(3) ,LSFT(KC_Z),LSFT(KC_X) ,LSFT(KC_C) ,LSFT(KC_V) ,LSFT(KC_B),LSFT(KC_N),LSFT(KC_M),KC_LT ,KC_GT ,KC_QUES ,KC_COLN, | ||
| 233 | KC_END ,KC_HOME ,LSFT(KC_LALT),LSFT(KC_LGUI),LSFT(KC_LCTL),KC_TRNS ,KC_SPC ,KC_TRNS ,KC_NO ,KC_BRID ,KC_BRIU ,KC_NO | ||
| 234 | ), | ||
| 235 | |||
| 236 | /* lower | ||
| 237 | * ,-----------------------------------------------------------------------------------. | ||
| 238 | * | ♡ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | | | ||
| 239 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 240 | * | ‣ | CLeft| MUp |CRight|MWDown| 【 | - | _ | | | = | + | DLeft| | ||
| 241 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 242 | * | | MLeft| MDown|MRight| MWUp | 】 | Left | Down | Up | Right| ( | ) | | ||
| 243 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 244 | * | | 《 | 》 | 「 | 」 | ⁕ | | { | } | [ | ] | => | | ||
| 245 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 246 | * | Mail |GitHub| | | | | Space|~~~~~~| VMute| VDown| VUp | | | ||
| 247 | * `-----------------------------------------------------------------------------------' | ||
| 248 | */ | ||
| 249 | |||
| 250 | [2] = LAYOUT_preonic_grid( | ||
| 251 | HEART ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_NO, | ||
| 252 | TBULLET ,KC_BTN1 ,KC_MS_U ,KC_BTN2 ,KC_WH_D ,LTITLE ,KC_MINS ,KC_UNDS ,KC_PIPE ,KC_EQL ,KC_PLUS ,LGUI(KC_BSPC), | ||
| 253 | KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_WH_U ,RTITLE ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT ,KC_LPRN ,KC_RPRN, | ||
| 254 | KC_NO ,LIQUOT ,RIQUOT ,LQUOT ,RQUOT ,FBULLET ,KC_NO ,KC_LCBR ,KC_RCBR ,KC_LBRC ,KC_RBRC ,FN_ARROW, | ||
| 255 | MAIL ,GITHUB ,KC_NO ,KC_NO ,KC_NO ,KC_TRNS ,KC_BSPC ,KC_TRNS ,KC_MUTE ,KC_VOLD ,KC_VOLU ,KC_NO | ||
| 256 | ), | ||
| 257 | |||
| 258 | /* emoji | ||
| 259 | * ,-----------------------------------------------------------------------------------. | ||
| 260 | * | | 1 | 2 | | | | | | | | | | | ||
| 261 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 262 | * | | | w | | r | | y | | | o | p | | | ||
| 263 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 264 | * | | | s | | f | | h | | k | l | | | | ||
| 265 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 266 | * | | z | | c | | | n | | | | | | | ||
| 267 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 268 | * | | | | | | | | | | | | | | ||
| 269 | * `-----------------------------------------------------------------------------------' | ||
| 270 | * | ||
| 271 | * mnemonics: | ||
| 272 | * | ||
| 273 | * 100 - 💯 | ||
| 274 | * 2 hearts - 💕 | ||
| 275 | * cry - 😂 | ||
| 276 | * flower - 🌸 | ||
| 277 | * heart - 💖 | ||
| 278 | * kiss - 😘 | ||
| 279 | * love - 💜 | ||
| 280 | * no - 🙅 | ||
| 281 | * ok - 🙆 | ||
| 282 | * party - 🎊 | ||
| 283 | * rocket - 🚀 | ||
| 284 | * shrug - 🤷 | ||
| 285 | * wizard - 🧙 | ||
| 286 | * yes - 👌 | ||
| 287 | * zzz - 😴 | ||
| 288 | * | ||
| 289 | */ | ||
| 290 | |||
| 291 | [3] = LAYOUT_preonic_grid( | ||
| 292 | KC_NO ,E_HUNNED,E_2HEART,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO, | ||
| 293 | KC_NO ,KC_NO ,E_WIZARD,KC_NO ,E_ROCKET,KC_NO ,E_OKHAND,KC_NO ,KC_NO ,E_OKBUST,E_PARTY ,KC_NO, | ||
| 294 | KC_NO ,KC_NO ,E_SHRUG ,KC_NO ,E_FLOWER,KC_NO ,E_SHEART,KC_NO ,E_KISS ,E_PHEART,KC_NO ,KC_NO, | ||
| 295 | KC_NO ,E_SLEEP ,KC_NO ,E_LCRY ,KC_NO ,KC_NO ,E_NOGOOD,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO, | ||
| 296 | KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO | ||
| 297 | ) | ||
| 298 | |||
| 299 | }; | ||
diff --git a/keyboards/preonic/keymaps/shwilliam/readme.md b/keyboards/preonic/keymaps/shwilliam/readme.md new file mode 100644 index 000000000..bb0f2e179 --- /dev/null +++ b/keyboards/preonic/keymaps/shwilliam/readme.md | |||
| @@ -0,0 +1,40 @@ | |||
| 1 | # [@shwilliam](https://github.com/shwilliam)'s Preonic Layout | ||
| 2 | |||
| 3 |  | ||
| 4 | |||
| 5 | ## Overview | ||
| 6 | |||
| 7 | - Shift, backspace, raise and lower on thumbs | ||
| 8 | - Arrows on Vim keys | ||
| 9 | - Function arrow key (`=>`) | ||
| 10 | - Common parens one key from home-row | ||
| 11 | - Brightness/volume control | ||
| 12 | - Tap caps-lock for escape, hold for left control and left shift | ||
| 13 | - Alternative punctuation | ||
| 14 | - Corner brackets | ||
| 15 | - Double-angle brackets | ||
| 16 | - Lenticular brackets | ||
| 17 | - Select to left and right keys | ||
| 18 | - Emoji layer | ||
| 19 | |||
| 20 | ## Layers | ||
| 21 | |||
| 22 | ### QWERTY | ||
| 23 | |||
| 24 | - Base layer; similar to default Preonic keymap | ||
| 25 | |||
| 26 | ### Raise | ||
| 27 | |||
| 28 | - Mostly shifted QWERTY layer with alternative actions | ||
| 29 | - Brightness control | ||
| 30 | |||
| 31 | ### Lower | ||
| 32 | |||
| 33 | - Common parentheses | ||
| 34 | - Arrows on Vim keys | ||
| 35 | - Mouse controls on WASD | ||
| 36 | - Volume control | ||
| 37 | |||
| 38 | ### Emoji | ||
| 39 | |||
| 40 | - Emoji layout based on mnemonics | ||
diff --git a/keyboards/preonic/keymaps/shwilliam/rules.mk b/keyboards/preonic/keymaps/shwilliam/rules.mk new file mode 100644 index 000000000..dcf16bef3 --- /dev/null +++ b/keyboards/preonic/keymaps/shwilliam/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| SRC += muse.c | |||
