diff options
| author | Zac Moulton <moulton.zac@gmail.com> | 2021-09-10 18:56:50 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-10 18:56:50 -0700 |
| commit | d7747a2d700eec08679011d79dc6192fe43ca402 (patch) | |
| tree | bb714979ee6522af754c6deba60cd174fec0fdaf | |
| parent | 759d1927f099ba319ad09c69a2cc71026d775713 (diff) | |
| download | qmk_firmware-d7747a2d700eec08679011d79dc6192fe43ca402.tar.gz qmk_firmware-d7747a2d700eec08679011d79dc6192fe43ca402.zip | |
[Keymap] moults31 userspace and keymaps (#12025)
22 files changed, 924 insertions, 4 deletions
diff --git a/keyboards/durgod/k320/keymaps/moults31/config.h b/keyboards/durgod/k320/keymaps/moults31/config.h new file mode 100644 index 000000000..01f47b8c1 --- /dev/null +++ b/keyboards/durgod/k320/keymaps/moults31/config.h | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | /* | ||
| 2 | * Copyright 2021 moults31 | ||
| 3 | * | ||
| 4 | * This program is free software: you can redistribute it and/or modify | ||
| 5 | * it under the terms of the GNU General Public License as published by | ||
| 6 | * the Free Software Foundation, either version 2 of the License, or | ||
| 7 | * (at your option) any later version. | ||
| 8 | * | ||
| 9 | * This program is distributed in the hope that it will be useful, | ||
| 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | * GNU General Public License for more details. | ||
| 13 | * | ||
| 14 | * You should have received a copy of the GNU General Public License | ||
| 15 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #pragma once | ||
| 19 | |||
| 20 | #define DYNAMIC_KEYMAP_LAYER_COUNT 3 | ||
diff --git a/keyboards/durgod/k320/keymaps/moults31/keymap.c b/keyboards/durgod/k320/keymaps/moults31/keymap.c new file mode 100644 index 000000000..c44fe1585 --- /dev/null +++ b/keyboards/durgod/k320/keymaps/moults31/keymap.c | |||
| @@ -0,0 +1,84 @@ | |||
| 1 | /* Copyright 2021 moults31 | ||
| 2 | * Adapted from kuenhlee and Don Kjer and Coirault | ||
| 3 | * | ||
| 4 | * This program is free software: you can redistribute it and/or modify | ||
| 5 | * it under the terms of the GNU General Public License as published by | ||
| 6 | * the Free Software Foundation, either version 2 of the License, or | ||
| 7 | * (at your option) any later version. | ||
| 8 | * | ||
| 9 | * This program is distributed in the hope that it will be useful, | ||
| 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | * GNU General Public License for more details. | ||
| 13 | * | ||
| 14 | * You should have received a copy of the GNU General Public License | ||
| 15 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | #include QMK_KEYBOARD_H | ||
| 18 | |||
| 19 | #include "moults31.h" | ||
| 20 | |||
| 21 | // Layer shorthand | ||
| 22 | enum _layer { | ||
| 23 | _BASE, | ||
| 24 | _FUNC, | ||
| 25 | _LAYER3 | ||
| 26 | }; | ||
| 27 | |||
| 28 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 29 | /* Keymap _BASE: Base Layer (Default Layer) | ||
| 30 | * ,-----------------------------------------------------------. ,--------------. | ||
| 31 | * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| | ||
| 32 | * |-----------------------------------------------------------| |--------------| | ||
| 33 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp| | ||
| 34 | * |-----------------------------------------------------------| |--------------| | ||
| 35 | * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | Del| End|PgDn| | ||
| 36 | * |------------------------------------------------------ Ret | `--------------' | ||
| 37 | * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #| | | ||
| 38 | * |-----------------------------------------------------------| ,----. | ||
| 39 | * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up | | ||
| 40 | * |-----------------------------------------------------------| ,-------------. | ||
| 41 | * |Ctrl|Gui |Alt | Space |Alt | Fn |App |Ctrl| |Lft| Dn |Rig | | ||
| 42 | * `-----------------------------------------------------------' `-------------' | ||
| 43 | */ | ||
| 44 | [_BASE] = LAYOUT_tkl_ansi( /* Base Layer */ | ||
| 45 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, | ||
| 46 | KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, | ||
| 47 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, | ||
| 48 | KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, | ||
| 49 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, | ||
| 50 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FUNC),KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT | ||
| 51 | ), | ||
| 52 | /* Keymap _FUNC: Function Layer | ||
| 53 | * ,-----------------------------------------------------------. ,--------------. | ||
| 54 | * | |Play|Stop|Prev|Next| |Mute|Vol+|Vol-| | | | | | | | | | | | ||
| 55 | * |-----------------------------------------------------------| |--------------| | ||
| 56 | * | | | | | | | | | | | | | | | | | | | | ||
| 57 | * |-----------------------------------------------------------| |--------------| | ||
| 58 | * | | | | | | | | | | | | | | | | | | | | ||
| 59 | * |------------------------------------------------------- | `--------------' | ||
| 60 | * | | | | | | | | | | | | | | | | ||
| 61 | * |-----------------------------------------------------------| ,----. | ||
| 62 | * | | | | | | | | | | | | | | | | | ||
| 63 | * |-----------------------------------------------------------| ,-------------. | ||
| 64 | * | | | | | |Func | | | | | | | | ||
| 65 | * `-----------------------------------------------------------' `-------------' | ||
| 66 | */ | ||
| 67 | [_FUNC] = LAYOUT_tkl_ansi( /* Function Layer */ | ||
| 68 | _______, KC_MPLY, KC_MSTP, KC_MRWD, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 69 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 70 | _______, _______, M_VSC_VIEWSIZEINC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 71 | _______, M_VSC_EDGRPPRV, M_VSC_VIEWSIZEDEC, M_VSC_EDGRPNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 72 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 73 | _______, _______, _______, _______, _______, _______, _______, _______, M_VSC_MVEDTRPRVGRP, _______, M_VSC_MVEDTRNXTGRP | ||
| 74 | ), | ||
| 75 | [_LAYER3] = LAYOUT_tkl_ansi( /* Function Layer */ | ||
| 76 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 77 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 78 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 79 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 80 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 81 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 82 | ), | ||
| 83 | }; | ||
| 84 | |||
diff --git a/keyboards/durgod/k320/keymaps/moults31/readme.md b/keyboards/durgod/k320/keymaps/moults31/readme.md new file mode 100644 index 000000000..e3a3f150f --- /dev/null +++ b/keyboards/durgod/k320/keymaps/moults31/readme.md | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | # The default keymap for Durgod Taurus K320. | ||
| 2 | |||
| 3 | Layer 0 : Standard Keys TKL layout | ||
| 4 | |||
| 5 | Layer 1 : Media control and VScode navigation | ||
| 6 | - Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7 | ||
| 7 | |||
| 8 | ## Supported PCBs | ||
| 9 | |||
| 10 | This keymap intended for use on Durgod K320 ANSI | ||
diff --git a/keyboards/durgod/k320/keymaps/moults31/rules.mk b/keyboards/durgod/k320/keymaps/moults31/rules.mk new file mode 100644 index 000000000..36b7ba9cb --- /dev/null +++ b/keyboards/durgod/k320/keymaps/moults31/rules.mk | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | VIA_ENABLE = yes | ||
| 2 | LTO_ENABLE = yes | ||
diff --git a/keyboards/dztech/dz60rgb/keymaps/moults31/keymap.c b/keyboards/dztech/dz60rgb/keymaps/moults31/keymap.c new file mode 100644 index 000000000..98802270a --- /dev/null +++ b/keyboards/dztech/dz60rgb/keymaps/moults31/keymap.c | |||
| @@ -0,0 +1,42 @@ | |||
| 1 | /* | ||
| 2 | * Copyright 2021 moults31 | ||
| 3 | * | ||
| 4 | * This program is free software: you can redistribute it and/or modify | ||
| 5 | * it under the terms of the GNU General Public License as published by | ||
| 6 | * the Free Software Foundation, either version 2 of the License, or | ||
| 7 | * (at your option) any later version. | ||
| 8 | * | ||
| 9 | * This program is distributed in the hope that it will be useful, | ||
| 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | * GNU General Public License for more details. | ||
| 13 | * | ||
| 14 | * You should have received a copy of the GNU General Public License | ||
| 15 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | |||
| 20 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 21 | [0] = LAYOUT( | ||
| 22 | KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, | ||
| 23 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, | ||
| 24 | CTL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, | ||
| 25 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_SLSH, KC_RSHFT, KC_UP, LT(2, KC_DEL), | ||
| 26 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_COMM, MO(1), KC_LEFT, KC_DOWN, KC_RGHT | ||
| 27 | ), | ||
| 28 | [1] = LAYOUT( | ||
| 29 | KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, | ||
| 30 | _______, _______, KC_UP, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, KC_HOME, KC_END, RESET, | ||
| 31 | _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, EEP_RST, | ||
| 32 | _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, KC_MPLY, KC_VOLU, KC_MUTE, | ||
| 33 | _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT | ||
| 34 | ), | ||
| 35 | [2] = LAYOUT( | ||
| 36 | RGB_MOD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, | ||
| 37 | _______, _______, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, RESET, | ||
| 38 | _______, RGB_SAD, RGB_HUD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 39 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, _______, | ||
| 40 | _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_VAD, RGB_SPD | ||
| 41 | ), | ||
| 42 | }; | ||
diff --git a/keyboards/dztech/dz60rgb/keymaps/moults31/readme.md b/keyboards/dztech/dz60rgb/keymaps/moults31/readme.md new file mode 100644 index 000000000..19bccf13e --- /dev/null +++ b/keyboards/dztech/dz60rgb/keymaps/moults31/readme.md | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | # moults31 DZ60RBG V2 Layout | ||
| 2 | |||
| 3 | Similar to the default dz60rgb v2 layout with some minor changes for quality of life in programming. | ||
| 4 | |||
| 5 | Brief summary of improvements over default: | ||
| 6 | * More intuitive media keys in layer 1 | ||
| 7 | * More intuitive RGB control keys in layer 2 | ||
| 8 | * Standard left-alt | ||
| 9 | * Anne Pro 2 style home/end placement in layer 1 | ||
| 10 | * Grave key moved to right-alt position for easier ctrl-grave vscode shortcut | ||
| 11 | * Removed layer 4 (mac layout?) | ||
diff --git a/keyboards/dztech/dz60rgb/keymaps/moults31/rules.mk b/keyboards/dztech/dz60rgb/keymaps/moults31/rules.mk new file mode 100644 index 000000000..1e5b99807 --- /dev/null +++ b/keyboards/dztech/dz60rgb/keymaps/moults31/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| VIA_ENABLE = yes | |||
diff --git a/keyboards/gmmk/pro/keymaps/moults31/keymap.c b/keyboards/gmmk/pro/keymaps/moults31/keymap.c new file mode 100644 index 000000000..90ac428c7 --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/moults31/keymap.c | |||
| @@ -0,0 +1,92 @@ | |||
| 1 | /* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com> | ||
| 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 | #include "moults31.h" | ||
| 20 | |||
| 21 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 22 | |||
| 23 | // ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute) | ||
| 24 | // ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del | ||
| 25 | // Tab Q W E R T Y U I O P [ ] \ PgUp | ||
| 26 | // Caps A S D F G H J K L ; " Enter PgDn | ||
| 27 | // Sh_L Z X C V B N M , . ? Sh_R Up End | ||
| 28 | // Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right | ||
| 29 | |||
| 30 | |||
| 31 | // The FN key by default maps to a momentary toggle to layer 1 to provide access to the RESET key (to put the board into bootloader mode). Without | ||
| 32 | // this mapping, you have to open the case to hit the button on the bottom of the PCB (near the USB cable attachment) while plugging in the USB | ||
| 33 | // cable to get the board into bootloader mode - definitely not fun when you're working on your QMK builds. Remove this and put it back to KC_RGUI | ||
| 34 | // if that's your preference. | ||
| 35 | // | ||
| 36 | // To put the keyboard in bootloader mode, use FN+backslash. If you accidentally put it into bootloader, you can just unplug the USB cable and | ||
| 37 | // it'll be back to normal when you plug it back in. | ||
| 38 | [0] = LAYOUT( | ||
| 39 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_MPLY, | ||
| 40 | KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, | ||
| 41 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, | ||
| 42 | KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL, | ||
| 43 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(2), | ||
| 44 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT | ||
| 45 | ), | ||
| 46 | |||
| 47 | [1] = LAYOUT( | ||
| 48 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, | ||
| 49 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 50 | _______, _______, _______, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, _______, _______, RESET, _______, | ||
| 51 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, | ||
| 52 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 53 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 54 | ), | ||
| 55 | |||
| 56 | [2] = LAYOUT( | ||
| 57 | M_GDB_STOP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, M_VSC_DBGCNSLFOCUS, | ||
| 58 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 59 | _______, _______, M_VSC_VIEWSIZEINC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 60 | _______, M_VSC_EDGRPPRV, M_VSC_VIEWSIZEDEC, M_VSC_EDGRPNXT, _______, _______, _______, _______, _______, _______, _______, _______, M_GDB_PLAY, M_GDB_PAUSE, | ||
| 61 | _______, M_VSC_FILEPRV, M_VSC_FILENXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, M_GDB_STEPOUT, _______, | ||
| 62 | _______, _______, _______, _______, _______, _______, _______, M_GDB_RESTART, M_GDB_STEPIN, M_GDB_STEPOVER | ||
| 63 | ), | ||
| 64 | |||
| 65 | }; | ||
| 66 | |||
| 67 | |||
| 68 | bool encoder_update_user(uint8_t index, bool clockwise) { | ||
| 69 | const layer_state_t curr_layer = get_highest_layer(layer_state); | ||
| 70 | if(curr_layer == 2) { | ||
| 71 | if (clockwise) { | ||
| 72 | moults31_tap_custom_code(M_VSC_FILENXT); | ||
| 73 | } else { | ||
| 74 | moults31_tap_custom_code(M_VSC_FILEPRV); | ||
| 75 | } | ||
| 76 | } | ||
| 77 | else if(curr_layer == 1) { | ||
| 78 | if (clockwise) { | ||
| 79 | moults31_tap_custom_code(M_VSC_VIEWSIZEINC); | ||
| 80 | } else { | ||
| 81 | moults31_tap_custom_code(M_VSC_VIEWSIZEDEC); | ||
| 82 | } | ||
| 83 | } | ||
| 84 | else { | ||
| 85 | if (clockwise) { | ||
| 86 | tap_code(KC_VOLU); | ||
| 87 | } else { | ||
| 88 | tap_code(KC_VOLD); | ||
| 89 | } | ||
| 90 | } | ||
| 91 | return false; | ||
| 92 | } | ||
diff --git a/keyboards/knobgoblin/keymaps/moults31/keymap.c b/keyboards/knobgoblin/keymaps/moults31/keymap.c new file mode 100644 index 000000000..16830bc98 --- /dev/null +++ b/keyboards/knobgoblin/keymaps/moults31/keymap.c | |||
| @@ -0,0 +1,170 @@ | |||
| 1 | /* Copyright 2020 MrT1ddl3s | ||
| 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 | #include "moults31.h" | ||
| 20 | |||
| 21 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 22 | |||
| 23 | [0] = LAYOUT_ortho( | ||
| 24 | KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, | ||
| 25 | KC_P7, KC_P8, KC_P9, KC_PPLS, | ||
| 26 | KC_P4, KC_P5, KC_P6, KC_PPLS, | ||
| 27 | KC_MPLY, KC_P1, KC_P2, KC_P3, KC_PENT, | ||
| 28 | KC_MUTE, MO(10), KC_P0, KC_PDOT, KC_PENT | ||
| 29 | ), | ||
| 30 | |||
| 31 | [1] = LAYOUT_ortho( | ||
| 32 | KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 33 | KC_HOME, KC_TRNS, KC_PGUP, KC_TRNS, | ||
| 34 | KC_END , KC_UP, KC_PGDN, KC_TRNS, | ||
| 35 | KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_SPC, | ||
| 36 | KC_TRNS, MO(10), KC_BSPC, KC_DEL, KC_TRNS | ||
| 37 | ), | ||
| 38 | |||
| 39 | [2] = LAYOUT_ortho( | ||
| 40 | KC_2, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 41 | M_VSC_MVEDTRPRVGRP, M_VSC_MVEDTRNXTGRP, KC_TRNS, KC_TRNS, | ||
| 42 | M_VSC_EDGRPPRV, M_VSC_EDGRPNXT, KC_TRNS, KC_TRNS, | ||
| 43 | KC_TRNS, M_VSC_SIDEBARFOCUS, M_VSC_SIDEBARCLOSE, M_VSC_TERMFOCUS, KC_TRNS, | ||
| 44 | M_VSC_FILECLOSE, MO(10), KC_TRNS, KC_TRNS, KC_TRNS | ||
| 45 | ), | ||
| 46 | |||
| 47 | [3] = LAYOUT_ortho( | ||
| 48 | KC_3, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 49 | KC_TRNS, KC_TRNS, KC_TRNS, M_GDB_PAUSE, | ||
| 50 | M_GDB_RESTART, M_GDB_STOP, KC_TRNS, M_GDB_PAUSE, | ||
| 51 | M_VSC_DBGCNSLFOCUS, M_GDB_STEPOVER, M_GDB_STEPIN, M_GDB_STEPOUT, M_GDB_PLAY, | ||
| 52 | KC_TRNS, MO(10), KC_TRNS, KC_TRNS, M_GDB_PLAY | ||
| 53 | ), | ||
| 54 | |||
| 55 | [4] = LAYOUT_ortho( | ||
| 56 | KC_4, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 57 | M_OBS_VOICE_UNMUTE, M_OBS_MOOSIC_MUTE, M_OBS_MOOSIC_UNMUTE, KC_TRNS, | ||
| 58 | M_OBS_DSKT_MUTE, M_OBS_DSKT_UNMUTE, M_OBS_VOICE_MUTE, KC_TRNS, | ||
| 59 | KC_TRNS, M_OBS_BRB, M_OBS_GAME, M_OBS_JSTCHT, KC_TRNS, | ||
| 60 | KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS | ||
| 61 | ), | ||
| 62 | |||
| 63 | [5] = LAYOUT_ortho( | ||
| 64 | KC_5, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 65 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 66 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 67 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 68 | KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS | ||
| 69 | ), | ||
| 70 | |||
| 71 | [6] = LAYOUT_ortho( | ||
| 72 | KC_6, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 73 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 74 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 75 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 76 | KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS | ||
| 77 | ), | ||
| 78 | |||
| 79 | [7] = LAYOUT_ortho( | ||
| 80 | KC_7, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 81 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 82 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 83 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 84 | KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS | ||
| 85 | ), | ||
| 86 | |||
| 87 | [8] = LAYOUT_ortho( | ||
| 88 | KC_8, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 89 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 90 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 91 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 92 | KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS | ||
| 93 | ), | ||
| 94 | |||
| 95 | [9] = LAYOUT_ortho( | ||
| 96 | KC_9, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 97 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 98 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 99 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 100 | KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS | ||
| 101 | ), | ||
| 102 | |||
| 103 | [10] = LAYOUT_ortho( | ||
| 104 | RESET, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 105 | TO(7), TO(8), TO(9), KC_TRNS, | ||
| 106 | TO(4), TO(5), TO(6), KC_TRNS, | ||
| 107 | KC_TRNS, TO(1), TO(2), TO(3), KC_TRNS, | ||
| 108 | KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_TRNS | ||
| 109 | ), | ||
| 110 | |||
| 111 | |||
| 112 | |||
| 113 | }; | ||
| 114 | |||
| 115 | /* byte map for the goblin logo, knob goblin text, and level text */ | ||
| 116 | static void render_goblin_logo(void) { | ||
| 117 | static const char PROGMEM my_logo[] = { | ||
| 118 | 0x00, 0xe0, 0x40, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x20, 0x10, 0x08, 0x08, 0x08, | ||
| 119 | 0x08, 0x08, 0x08, 0x10, 0x20, 0x60, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x40, 0xe0, 0x00, | ||
| 120 | 0x00, 0x03, 0x06, 0x3c, 0x49, 0x91, 0x21, 0x00, 0x40, 0x80, 0x80, 0x80, 0x80, 0x00, 0x60, 0x00, | ||
| 121 | 0x00, 0x60, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x00, 0x21, 0x91, 0x49, 0x3c, 0x06, 0x03, 0x00, | ||
| 122 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1f, 0x60, 0x40, 0xc0, 0x06, 0x0e, 0x0f, 0x67, 0x50, 0xc0, | ||
| 123 | 0xc0, 0x50, 0x67, 0x0f, 0x0e, 0x06, 0xc0, 0x40, 0x60, 0x1f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 124 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x7b, 0xc7, 0x8e, 0x1e, 0x3e, 0x3e, | ||
| 125 | 0x3e, 0x3e, 0x1e, 0x8e, 0xc7, 0x7b, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 126 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x04, | ||
| 127 | 0x04, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 128 | 0x03, 0x03, 0x03, 0x03, 0x03, 0x83, 0x03, 0x03, 0x03, 0x83, 0x03, 0x83, 0x03, 0x03, 0x03, 0x83, | ||
| 129 | 0x03, 0x03, 0x83, 0x83, 0x83, 0x03, 0x03, 0x83, 0x83, 0x83, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, | ||
| 130 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x04, 0x06, 0x09, 0x10, 0x00, 0x1f, 0x03, 0x06, 0x0c, 0x1f, | ||
| 131 | 0x00, 0x0f, 0x10, 0x10, 0x10, 0x0f, 0x00, 0x1f, 0x12, 0x12, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 132 | 0x00, 0x78, 0xfc, 0x84, 0xa4, 0xa4, 0x68, 0x00, 0x78, 0x84, 0x84, 0x84, 0x78, 0x00, 0xfc, 0x94, | ||
| 133 | 0x94, 0x68, 0x00, 0xfc, 0x80, 0x80, 0x80, 0x00, 0xfc, 0x00, 0xfc, 0x18, 0x30, 0x60, 0xfc, 0x00, | ||
| 134 | 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, | ||
| 135 | 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, | ||
| 136 | 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x50, 0x50, 0x50, 0x00, 0xf0, 0x00, 0x00, | ||
| 137 | 0x00, 0xf0, 0x00, 0xf0, 0x50, 0x50, 0x50, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 138 | 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x00, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x01, 0x02, | ||
| 139 | 0x01, 0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x00, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00 | ||
| 140 | }; | ||
| 141 | oled_write_raw_P(my_logo, sizeof(my_logo)); | ||
| 142 | } | ||
| 143 | |||
| 144 | void oled_task_user(void) { | ||
| 145 | |||
| 146 | render_goblin_logo(); | ||
| 147 | |||
| 148 | oled_set_cursor(0,11); | ||
| 149 | |||
| 150 | switch (get_highest_layer(layer_state)) { | ||
| 151 | case 0: | ||
| 152 | oled_write_P(PSTR(" NUM\n"), false); | ||
| 153 | break; | ||
| 154 | case 1: | ||
| 155 | oled_write_P(PSTR(" NAV\n"), false); | ||
| 156 | break; | ||
| 157 | case 2: | ||
| 158 | oled_write_P(PSTR(" CODE\n"), false); | ||
| 159 | break; | ||
| 160 | case 3: | ||
| 161 | oled_write_P(PSTR(" GDB\n"), false); | ||
| 162 | break; | ||
| 163 | case 4: | ||
| 164 | oled_write_P(PSTR(" OBS\n"), false); | ||
| 165 | break; | ||
| 166 | default: | ||
| 167 | oled_write_P(PSTR(" NONE\n"), false); | ||
| 168 | break; | ||
| 169 | } | ||
| 170 | } | ||
diff --git a/keyboards/knobgoblin/keymaps/moults31/readme.md b/keyboards/knobgoblin/keymaps/moults31/readme.md new file mode 100644 index 000000000..f137c78c3 --- /dev/null +++ b/keyboards/knobgoblin/keymaps/moults31/readme.md | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | # Ortho Knob Goblin Layout | ||
| 2 | |||
| 3 | Via functionality for the Knob Goblin. Ortho layout. \ No newline at end of file | ||
diff --git a/keyboards/knobgoblin/keymaps/moults31/rules.mk b/keyboards/knobgoblin/keymaps/moults31/rules.mk new file mode 100644 index 000000000..533af592e --- /dev/null +++ b/keyboards/knobgoblin/keymaps/moults31/rules.mk | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | VIA_ENABLE = YES | ||
| 2 | LTO_ENABLE = YES | ||
| 3 | BOOTLOADER = atmel-dfu | ||
diff --git a/keyboards/knobgoblin/keymaps/via/keymap.c b/keyboards/knobgoblin/keymaps/via/keymap.c index afe3226bb..4631dccd0 100644 --- a/keyboards/knobgoblin/keymaps/via/keymap.c +++ b/keyboards/knobgoblin/keymaps/via/keymap.c | |||
| @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 25 | KC_MPLY, KC_P1, KC_P2, KC_P3, KC_PENT, | 25 | KC_MPLY, KC_P1, KC_P2, KC_P3, KC_PENT, |
| 26 | KC_MUTE, MO(1), KC_P0, KC_PDOT, KC_PENT | 26 | KC_MUTE, MO(1), KC_P0, KC_PDOT, KC_PENT |
| 27 | ), | 27 | ), |
| 28 | 28 | ||
| 29 | [1] = LAYOUT_ortho( | 29 | [1] = LAYOUT_ortho( |
| 30 | KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, | 30 | KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, |
| 31 | KC_HOME, KC_TRNS, KC_PGUP, KC_TRNS, | 31 | KC_HOME, KC_TRNS, KC_PGUP, KC_TRNS, |
| @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 33 | KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_SPC, | 33 | KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_SPC, |
| 34 | KC_TRNS, KC_TRNS, KC_BSPC, KC_DEL, KC_TRNS | 34 | KC_TRNS, KC_TRNS, KC_BSPC, KC_DEL, KC_TRNS |
| 35 | ), | 35 | ), |
| 36 | 36 | ||
| 37 | [2] = LAYOUT_ortho( | 37 | [2] = LAYOUT_ortho( |
| 38 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 38 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 39 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 39 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 41 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 41 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 42 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | 42 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS |
| 43 | ), | 43 | ), |
| 44 | 44 | ||
| 45 | [3] = LAYOUT_ortho( | 45 | [3] = LAYOUT_ortho( |
| 46 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 46 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 47 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 47 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| @@ -50,4 +50,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 50 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | 50 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS |
| 51 | ) | 51 | ) |
| 52 | 52 | ||
| 53 | }; \ No newline at end of file | 53 | }; |
diff --git a/users/moults31/gdb.c b/users/moults31/gdb.c new file mode 100644 index 000000000..42f5513ec --- /dev/null +++ b/users/moults31/gdb.c | |||
| @@ -0,0 +1,59 @@ | |||
| 1 | /* Copyright 2021 moults31 | ||
| 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 | #include "gdb.h" | ||
| 17 | |||
| 18 | bool process_record_gdb(uint16_t keycode, keyrecord_t *record) { | ||
| 19 | bool rv = true; | ||
| 20 | switch (keycode) { | ||
| 21 | case M_GDB_PLAY: | ||
| 22 | if (record->event.pressed) { | ||
| 23 | SEND_STRING(SS_TAP(X_F5)); | ||
| 24 | } | ||
| 25 | break; | ||
| 26 | case M_GDB_PAUSE: | ||
| 27 | if (record->event.pressed) { | ||
| 28 | SEND_STRING(SS_TAP(X_F6)); | ||
| 29 | } | ||
| 30 | break; | ||
| 31 | case M_GDB_STEPOVER: | ||
| 32 | if (record->event.pressed) { | ||
| 33 | SEND_STRING(SS_TAP(X_F10)); | ||
| 34 | } | ||
| 35 | break; | ||
| 36 | case M_GDB_STEPIN: | ||
| 37 | if (record->event.pressed) { | ||
| 38 | SEND_STRING(SS_TAP(X_F11)); | ||
| 39 | } | ||
| 40 | break; | ||
| 41 | case M_GDB_STEPOUT: | ||
| 42 | if (record->event.pressed) { | ||
| 43 | SEND_STRING(SS_LSFT(SS_TAP(X_F11))); | ||
| 44 | } | ||
| 45 | break; | ||
| 46 | case M_GDB_RESTART: | ||
| 47 | if (record->event.pressed) { | ||
| 48 | SEND_STRING(SS_LCTRL(SS_LSFT(SS_TAP(X_F5)))); | ||
| 49 | } | ||
| 50 | break; | ||
| 51 | case M_GDB_STOP: | ||
| 52 | if (record->event.pressed) { | ||
| 53 | SEND_STRING(SS_LSFT(SS_TAP(X_F5))); | ||
| 54 | } | ||
| 55 | break; | ||
| 56 | } | ||
| 57 | |||
| 58 | return rv; | ||
| 59 | } | ||
diff --git a/users/moults31/gdb.h b/users/moults31/gdb.h new file mode 100644 index 000000000..385825692 --- /dev/null +++ b/users/moults31/gdb.h | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | /* Copyright 2021 moults31 | ||
| 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 | #pragma once | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | #include "moults31.h" | ||
| 20 | |||
| 21 | bool process_record_gdb(uint16_t keycode, keyrecord_t *record); | ||
diff --git a/users/moults31/moults31.c b/users/moults31/moults31.c new file mode 100644 index 000000000..0dbaed0bb --- /dev/null +++ b/users/moults31/moults31.c | |||
| @@ -0,0 +1,114 @@ | |||
| 1 | /* Copyright 2021 moults31 | ||
| 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 | #include "moults31.h" | ||
| 17 | |||
| 18 | bool moults31_tap_custom_code(uint16_t keycode) { | ||
| 19 | keyrecord_t record = { | ||
| 20 | .event = { | ||
| 21 | .pressed = 1, | ||
| 22 | }, | ||
| 23 | }; | ||
| 24 | return process_record_user(keycode, &record); | ||
| 25 | } | ||
| 26 | |||
| 27 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 28 | bool rv = true; | ||
| 29 | switch (keycode) { | ||
| 30 | case M_MST_CODEBLOCK: | ||
| 31 | if (record->event.pressed) { | ||
| 32 | SEND_STRING("```"); | ||
| 33 | } | ||
| 34 | break; | ||
| 35 | |||
| 36 | case M_VSC_TERMFOCUS: | ||
| 37 | case M_VSC_SIDEBARFOCUS: | ||
| 38 | case M_VSC_SIDEBARCLOSE: | ||
| 39 | case M_VSC_FILECLOSE: | ||
| 40 | case M_VSC_FILENXT: | ||
| 41 | case M_VSC_FILEPRV: | ||
| 42 | case M_VSC_DBGCNSLFOCUS: | ||
| 43 | case M_VSC_MVEDTRNXTGRP: | ||
| 44 | case M_VSC_MVEDTRPRVGRP: | ||
| 45 | case M_VSC_EDGRPNXT: | ||
| 46 | case M_VSC_EDGRPPRV: | ||
| 47 | case M_VSC_VIEWSIZEINC: | ||
| 48 | case M_VSC_VIEWSIZEDEC: | ||
| 49 | rv = process_record_vsc(keycode, record); | ||
| 50 | break; | ||
| 51 | |||
| 52 | case M_GDB_PLAY: | ||
| 53 | case M_GDB_PAUSE: | ||
| 54 | case M_GDB_STEPOVER: | ||
| 55 | case M_GDB_STEPIN: | ||
| 56 | case M_GDB_STEPOUT: | ||
| 57 | case M_GDB_RESTART: | ||
| 58 | case M_GDB_STOP: | ||
| 59 | rv = process_record_gdb(keycode, record); | ||
| 60 | break; | ||
| 61 | |||
| 62 | case M_OBS_BRB: | ||
| 63 | case M_OBS_GAME: | ||
| 64 | case M_OBS_JSTCHT: | ||
| 65 | case M_OBS_DSKT_MUTE: | ||
| 66 | case M_OBS_DSKT_UNMUTE: | ||
| 67 | case M_OBS_VOICE_MUTE: | ||
| 68 | case M_OBS_VOICE_UNMUTE: | ||
| 69 | case M_OBS_MOOSIC_MUTE: | ||
| 70 | case M_OBS_MOOSIC_UNMUTE: | ||
| 71 | rv = process_record_obs(keycode, record); | ||
| 72 | break; | ||
| 73 | } | ||
| 74 | return rv; | ||
| 75 | }; | ||
| 76 | |||
| 77 | #ifdef ENCODER_ENABLE | ||
| 78 | __attribute__((weak)) bool encoder_update_user(uint8_t index, bool clockwise) { | ||
| 79 | const layer_state_t curr_layer = get_highest_layer(layer_state); | ||
| 80 | if (index == 1) { /* Bottom encoder */ | ||
| 81 | if(curr_layer == 2 || curr_layer == 3) { | ||
| 82 | if (clockwise) { | ||
| 83 | moults31_tap_custom_code(M_VSC_FILENXT); | ||
| 84 | } else { | ||
| 85 | moults31_tap_custom_code(M_VSC_FILEPRV); | ||
| 86 | } | ||
| 87 | } | ||
| 88 | else { | ||
| 89 | if (clockwise) { | ||
| 90 | tap_code(KC_VOLU); | ||
| 91 | } else { | ||
| 92 | tap_code(KC_VOLD); | ||
| 93 | } | ||
| 94 | } | ||
| 95 | } | ||
| 96 | if (index == 0) { /* Top encoder */ | ||
| 97 | if(curr_layer == 2 || curr_layer == 3) { | ||
| 98 | if (clockwise) { | ||
| 99 | moults31_tap_custom_code(M_VSC_VIEWSIZEINC); | ||
| 100 | } else { | ||
| 101 | moults31_tap_custom_code(M_VSC_VIEWSIZEDEC); | ||
| 102 | } | ||
| 103 | } | ||
| 104 | else { | ||
| 105 | if (clockwise) { | ||
| 106 | tap_code(KC_MNXT); | ||
| 107 | } else { | ||
| 108 | tap_code(KC_MPRV); | ||
| 109 | } | ||
| 110 | } | ||
| 111 | } | ||
| 112 | return false; | ||
| 113 | } | ||
| 114 | #endif | ||
diff --git a/users/moults31/moults31.h b/users/moults31/moults31.h new file mode 100644 index 000000000..60e317b78 --- /dev/null +++ b/users/moults31/moults31.h | |||
| @@ -0,0 +1,61 @@ | |||
| 1 | /* Copyright 2021 moults31 | ||
| 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 | #pragma once | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | |||
| 20 | #include "vscode.h" | ||
| 21 | #include "obs.h" | ||
| 22 | #include "gdb.h" | ||
| 23 | |||
| 24 | bool moults31_tap_custom_code(uint16_t keycode); | ||
| 25 | |||
| 26 | enum custom_keycodes { | ||
| 27 | // VSCode keycodes | ||
| 28 | M_VSC_TERMFOCUS = SAFE_RANGE, | ||
| 29 | M_VSC_SIDEBARFOCUS, | ||
| 30 | M_VSC_SIDEBARCLOSE, | ||
| 31 | M_VSC_DBGCNSLFOCUS, | ||
| 32 | M_VSC_EDGRPNXT, | ||
| 33 | M_VSC_EDGRPPRV, | ||
| 34 | M_VSC_MVEDTRNXTGRP, | ||
| 35 | M_VSC_MVEDTRPRVGRP, | ||
| 36 | M_VSC_VIEWSIZEINC, | ||
| 37 | M_VSC_VIEWSIZEDEC, | ||
| 38 | M_VSC_FILECLOSE, | ||
| 39 | M_VSC_FILENXT, | ||
| 40 | M_VSC_FILEPRV, | ||
| 41 | // GDB keycodes (for vscode debugger) | ||
| 42 | M_GDB_PLAY, | ||
| 43 | M_GDB_PAUSE, | ||
| 44 | M_GDB_STEPOVER, | ||
| 45 | M_GDB_STEPIN, | ||
| 46 | M_GDB_STEPOUT, | ||
| 47 | M_GDB_RESTART, | ||
| 48 | M_GDB_STOP, | ||
| 49 | // MS Teams keycodes | ||
| 50 | M_MST_CODEBLOCK, | ||
| 51 | // OBS keycodes | ||
| 52 | M_OBS_BRB, | ||
| 53 | M_OBS_GAME, | ||
| 54 | M_OBS_JSTCHT, | ||
| 55 | M_OBS_DSKT_MUTE, | ||
| 56 | M_OBS_DSKT_UNMUTE, | ||
| 57 | M_OBS_VOICE_MUTE, | ||
| 58 | M_OBS_VOICE_UNMUTE, | ||
| 59 | M_OBS_MOOSIC_MUTE, | ||
| 60 | M_OBS_MOOSIC_UNMUTE, | ||
| 61 | }; | ||
diff --git a/users/moults31/obs.c b/users/moults31/obs.c new file mode 100644 index 000000000..0ae5f3deb --- /dev/null +++ b/users/moults31/obs.c | |||
| @@ -0,0 +1,80 @@ | |||
| 1 | /* Copyright 2021 moults31 | ||
| 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 | #include "obs.h" | ||
| 17 | |||
| 18 | bool process_record_obs(uint16_t keycode, keyrecord_t *record) { | ||
| 19 | // Apply all 4 mods for custom OBS macros | ||
| 20 | register_code(KC_LSHIFT); | ||
| 21 | register_code(KC_LCTL); | ||
| 22 | register_code(KC_LALT); | ||
| 23 | register_code(KC_LGUI); | ||
| 24 | |||
| 25 | switch (keycode) { | ||
| 26 | case M_OBS_BRB: | ||
| 27 | if (record->event.pressed) { | ||
| 28 | SEND_STRING("1"); | ||
| 29 | } | ||
| 30 | break; | ||
| 31 | case M_OBS_GAME: | ||
| 32 | if (record->event.pressed) { | ||
| 33 | SEND_STRING("2"); | ||
| 34 | } | ||
| 35 | break; | ||
| 36 | case M_OBS_JSTCHT: | ||
| 37 | if (record->event.pressed) { | ||
| 38 | SEND_STRING("3"); | ||
| 39 | } | ||
| 40 | break; | ||
| 41 | case M_OBS_DSKT_MUTE: | ||
| 42 | if (record->event.pressed) { | ||
| 43 | SEND_STRING("4"); | ||
| 44 | } | ||
| 45 | break; | ||
| 46 | case M_OBS_DSKT_UNMUTE: | ||
| 47 | if (record->event.pressed) { | ||
| 48 | SEND_STRING("5"); | ||
| 49 | } | ||
| 50 | break; | ||
| 51 | case M_OBS_VOICE_MUTE: | ||
| 52 | if (record->event.pressed) { | ||
| 53 | SEND_STRING("6"); | ||
| 54 | } | ||
| 55 | break; | ||
| 56 | case M_OBS_VOICE_UNMUTE: | ||
| 57 | if (record->event.pressed) { | ||
| 58 | SEND_STRING("7"); | ||
| 59 | } | ||
| 60 | break; | ||
| 61 | case M_OBS_MOOSIC_MUTE: | ||
| 62 | if (record->event.pressed) { | ||
| 63 | SEND_STRING("8"); | ||
| 64 | } | ||
| 65 | break; | ||
| 66 | case M_OBS_MOOSIC_UNMUTE: | ||
| 67 | if (record->event.pressed) { | ||
| 68 | SEND_STRING("9"); | ||
| 69 | } | ||
| 70 | break; | ||
| 71 | } | ||
| 72 | |||
| 73 | // Unpress all 4 mods for custom OBS macros | ||
| 74 | unregister_code(KC_LSHIFT); | ||
| 75 | unregister_code(KC_LCTL); | ||
| 76 | unregister_code(KC_LALT); | ||
| 77 | unregister_code(KC_LGUI); | ||
| 78 | |||
| 79 | return true; | ||
| 80 | } | ||
diff --git a/users/moults31/obs.h b/users/moults31/obs.h new file mode 100644 index 000000000..2a2973f80 --- /dev/null +++ b/users/moults31/obs.h | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | /* Copyright 2021 moults31 | ||
| 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 | #pragma once | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | #include "moults31.h" | ||
| 20 | |||
| 21 | bool process_record_obs(uint16_t keycode, keyrecord_t *record); | ||
diff --git a/users/moults31/readme.md b/users/moults31/readme.md new file mode 100644 index 000000000..3a5badbe5 --- /dev/null +++ b/users/moults31/readme.md | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | # moults31 Userspace | ||
| 2 | |||
| 3 | ## Features | ||
| 4 | |||
| 5 | - Custom macros for VScode, OBS, GDB (Visual) | ||
diff --git a/users/moults31/rules.mk b/users/moults31/rules.mk new file mode 100644 index 000000000..af7c11d9f --- /dev/null +++ b/users/moults31/rules.mk | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | SRC += moults31.c | ||
| 2 | |||
| 3 | # Custom macro sources | ||
| 4 | SRC += vscode.c | ||
| 5 | SRC += obs.c | ||
| 6 | SRC += gdb.c | ||
| 7 | |||
| 8 | ifneq ($(PLATFORM),CHIBIOS) | ||
| 9 | LTO_ENABLE = yes # Enable link time optimization | ||
| 10 | endif | ||
diff --git a/users/moults31/vscode.c b/users/moults31/vscode.c new file mode 100644 index 000000000..a2fcf062d --- /dev/null +++ b/users/moults31/vscode.c | |||
| @@ -0,0 +1,90 @@ | |||
| 1 | /* Copyright 2021 moults31 | ||
| 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 | #include "vscode.h" | ||
| 17 | |||
| 18 | bool process_record_vsc(uint16_t keycode, keyrecord_t *record) { | ||
| 19 | bool rv = true; | ||
| 20 | |||
| 21 | switch (keycode) { | ||
| 22 | case M_VSC_TERMFOCUS: | ||
| 23 | if (record->event.pressed) { | ||
| 24 | SEND_STRING(SS_LCTRL("`")); | ||
| 25 | } | ||
| 26 | break; | ||
| 27 | case M_VSC_SIDEBARFOCUS: | ||
| 28 | if (record->event.pressed) { | ||
| 29 | SEND_STRING(SS_LCTRL("0")); | ||
| 30 | } | ||
| 31 | break; | ||
| 32 | case M_VSC_SIDEBARCLOSE: | ||
| 33 | if (record->event.pressed) { | ||
| 34 | SEND_STRING(SS_LCTRL("b")); | ||
| 35 | } | ||
| 36 | break; | ||
| 37 | case M_VSC_FILECLOSE: | ||
| 38 | if (record->event.pressed) { | ||
| 39 | SEND_STRING(SS_LCTRL("w")); | ||
| 40 | } | ||
| 41 | break; | ||
| 42 | case M_VSC_FILENXT: | ||
| 43 | if (record->event.pressed) { | ||
| 44 | SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_K) SS_TAP(X_PGDOWN) SS_UP(X_LCTRL)); | ||
| 45 | } | ||
| 46 | break; | ||
| 47 | case M_VSC_FILEPRV: | ||
| 48 | if (record->event.pressed) { | ||
| 49 | SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_K) SS_TAP(X_PGUP) SS_UP(X_LCTRL)); | ||
| 50 | } | ||
| 51 | break; | ||
| 52 | case M_VSC_DBGCNSLFOCUS: | ||
| 53 | if (record->event.pressed) { | ||
| 54 | SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_D)))); | ||
| 55 | } | ||
| 56 | break; | ||
| 57 | case M_VSC_MVEDTRNXTGRP: | ||
| 58 | if (record->event.pressed) { | ||
| 59 | SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_RIGHT)))); | ||
| 60 | } | ||
| 61 | break; | ||
| 62 | case M_VSC_MVEDTRPRVGRP: | ||
| 63 | if (record->event.pressed) { | ||
| 64 | SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_LEFT)))); | ||
| 65 | } | ||
| 66 | break; | ||
| 67 | case M_VSC_EDGRPNXT: | ||
| 68 | if (record->event.pressed) { | ||
| 69 | SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_L)))); | ||
| 70 | } | ||
| 71 | break; | ||
| 72 | case M_VSC_EDGRPPRV: | ||
| 73 | if (record->event.pressed) { | ||
| 74 | SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_K)))); | ||
| 75 | } | ||
| 76 | break; | ||
| 77 | case M_VSC_VIEWSIZEINC: | ||
| 78 | if (record->event.pressed) { | ||
| 79 | SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_P)))); | ||
| 80 | } | ||
| 81 | break; | ||
| 82 | case M_VSC_VIEWSIZEDEC: | ||
| 83 | if (record->event.pressed) { | ||
| 84 | SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_O)))); | ||
| 85 | } | ||
| 86 | break; | ||
| 87 | } | ||
| 88 | |||
| 89 | return rv; | ||
| 90 | } | ||
diff --git a/users/moults31/vscode.h b/users/moults31/vscode.h new file mode 100644 index 000000000..7e88b6591 --- /dev/null +++ b/users/moults31/vscode.h | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | /* Copyright 2021 moults31 | ||
| 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 | #pragma once | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | #include "moults31.h" | ||
| 20 | |||
| 21 | bool process_record_vsc(uint16_t keycode, keyrecord_t *record); | ||
