mirror of
https://github.com/qmk/qmk_firmware.git
synced 2024-11-22 19:39:27 +00:00
Merge remote-tracking branch 'origin/master' into develop
This commit is contained in:
commit
0ca04e6852
20
keyboards/durgod/k320/keymaps/moults31/config.h
Normal file
20
keyboards/durgod/k320/keymaps/moults31/config.h
Normal file
@ -0,0 +1,20 @@
|
||||
/*
|
||||
* Copyright 2021 moults31
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
|
84
keyboards/durgod/k320/keymaps/moults31/keymap.c
Normal file
84
keyboards/durgod/k320/keymaps/moults31/keymap.c
Normal file
@ -0,0 +1,84 @@
|
||||
/* Copyright 2021 moults31
|
||||
* Adapted from kuenhlee and Don Kjer and Coirault
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#include "moults31.h"
|
||||
|
||||
// Layer shorthand
|
||||
enum _layer {
|
||||
_BASE,
|
||||
_FUNC,
|
||||
_LAYER3
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap _BASE: Base Layer (Default Layer)
|
||||
* ,-----------------------------------------------------------. ,--------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | Del| End|PgDn|
|
||||
* |------------------------------------------------------ Ret | `--------------'
|
||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #| |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up |
|
||||
* |-----------------------------------------------------------| ,-------------.
|
||||
* |Ctrl|Gui |Alt | Space |Alt | Fn |App |Ctrl| |Lft| Dn |Rig |
|
||||
* `-----------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[_BASE] = LAYOUT_tkl_ansi( /* Base Layer */
|
||||
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,
|
||||
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,
|
||||
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,
|
||||
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_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,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FUNC),KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
/* Keymap _FUNC: Function Layer
|
||||
* ,-----------------------------------------------------------. ,--------------.
|
||||
* | |Play|Stop|Prev|Next| |Mute|Vol+|Vol-| | | | | | | | | | |
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* | | | | | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* | | | | | | | | | | | | | | | | | | |
|
||||
* |------------------------------------------------------- | `--------------'
|
||||
* | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------| ,-------------.
|
||||
* | | | | | |Func | | | | | | |
|
||||
* `-----------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[_FUNC] = LAYOUT_tkl_ansi( /* Function Layer */
|
||||
_______, KC_MPLY, KC_MSTP, KC_MRWD, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, M_VSC_VIEWSIZEINC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, M_VSC_EDGRPPRV, M_VSC_VIEWSIZEDEC, M_VSC_EDGRPNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, M_VSC_MVEDTRPRVGRP, _______, M_VSC_MVEDTRNXTGRP
|
||||
),
|
||||
[_LAYER3] = LAYOUT_tkl_ansi( /* Function Layer */
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
||||
|
10
keyboards/durgod/k320/keymaps/moults31/readme.md
Normal file
10
keyboards/durgod/k320/keymaps/moults31/readme.md
Normal file
@ -0,0 +1,10 @@
|
||||
# The default keymap for Durgod Taurus K320.
|
||||
|
||||
Layer 0 : Standard Keys TKL layout
|
||||
|
||||
Layer 1 : Media control and VScode navigation
|
||||
- Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7
|
||||
|
||||
## Supported PCBs
|
||||
|
||||
This keymap intended for use on Durgod K320 ANSI
|
2
keyboards/durgod/k320/keymaps/moults31/rules.mk
Normal file
2
keyboards/durgod/k320/keymaps/moults31/rules.mk
Normal file
@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
42
keyboards/dztech/dz60rgb/keymaps/moults31/keymap.c
Normal file
42
keyboards/dztech/dz60rgb/keymaps/moults31/keymap.c
Normal file
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright 2021 moults31
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
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,
|
||||
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,
|
||||
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,
|
||||
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),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_COMM, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
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,
|
||||
_______, _______, KC_UP, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, KC_HOME, KC_END, RESET,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, EEP_RST,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, KC_MPLY, KC_VOLU, KC_MUTE,
|
||||
_______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
|
||||
),
|
||||
[2] = LAYOUT(
|
||||
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,
|
||||
_______, _______, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, RESET,
|
||||
_______, RGB_SAD, RGB_HUD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, _______,
|
||||
_______, _______, _______, _______, _______, _______, RGB_SPI, RGB_VAD, RGB_SPD
|
||||
),
|
||||
};
|
11
keyboards/dztech/dz60rgb/keymaps/moults31/readme.md
Normal file
11
keyboards/dztech/dz60rgb/keymaps/moults31/readme.md
Normal file
@ -0,0 +1,11 @@
|
||||
# moults31 DZ60RBG V2 Layout
|
||||
|
||||
Similar to the default dz60rgb v2 layout with some minor changes for quality of life in programming.
|
||||
|
||||
Brief summary of improvements over default:
|
||||
* More intuitive media keys in layer 1
|
||||
* More intuitive RGB control keys in layer 2
|
||||
* Standard left-alt
|
||||
* Anne Pro 2 style home/end placement in layer 1
|
||||
* Grave key moved to right-alt position for easier ctrl-grave vscode shortcut
|
||||
* Removed layer 4 (mac layout?)
|
1
keyboards/dztech/dz60rgb/keymaps/moults31/rules.mk
Normal file
1
keyboards/dztech/dz60rgb/keymaps/moults31/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
92
keyboards/gmmk/pro/keymaps/moults31/keymap.c
Normal file
92
keyboards/gmmk/pro/keymaps/moults31/keymap.c
Normal file
@ -0,0 +1,92 @@
|
||||
/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#include "moults31.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute)
|
||||
// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del
|
||||
// Tab Q W E R T Y U I O P [ ] \ PgUp
|
||||
// Caps A S D F G H J K L ; " Enter PgDn
|
||||
// Sh_L Z X C V B N M , . ? Sh_R Up End
|
||||
// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right
|
||||
|
||||
|
||||
// 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
|
||||
// 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
|
||||
// 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
|
||||
// if that's your preference.
|
||||
//
|
||||
// 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
|
||||
// it'll be back to normal when you plug it back in.
|
||||
[0] = LAYOUT(
|
||||
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,
|
||||
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,
|
||||
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,
|
||||
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,
|
||||
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),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, _______, _______, RESET, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[2] = LAYOUT(
|
||||
M_GDB_STOP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, M_VSC_DBGCNSLFOCUS,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, M_VSC_VIEWSIZEINC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, M_VSC_EDGRPPRV, M_VSC_VIEWSIZEDEC, M_VSC_EDGRPNXT, _______, _______, _______, _______, _______, _______, _______, _______, M_GDB_PLAY, M_GDB_PAUSE,
|
||||
_______, M_VSC_FILEPRV, M_VSC_FILENXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, M_GDB_STEPOUT, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, M_GDB_RESTART, M_GDB_STEPIN, M_GDB_STEPOVER
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
const layer_state_t curr_layer = get_highest_layer(layer_state);
|
||||
if(curr_layer == 2) {
|
||||
if (clockwise) {
|
||||
moults31_tap_custom_code(M_VSC_FILENXT);
|
||||
} else {
|
||||
moults31_tap_custom_code(M_VSC_FILEPRV);
|
||||
}
|
||||
}
|
||||
else if(curr_layer == 1) {
|
||||
if (clockwise) {
|
||||
moults31_tap_custom_code(M_VSC_VIEWSIZEINC);
|
||||
} else {
|
||||
moults31_tap_custom_code(M_VSC_VIEWSIZEDEC);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
170
keyboards/knobgoblin/keymaps/moults31/keymap.c
Normal file
170
keyboards/knobgoblin/keymaps/moults31/keymap.c
Normal file
@ -0,0 +1,170 @@
|
||||
/* Copyright 2020 MrT1ddl3s
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#include "moults31.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_ortho(
|
||||
KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
|
||||
KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||
KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||
KC_MPLY, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||
KC_MUTE, MO(10), KC_P0, KC_PDOT, KC_PENT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_ortho(
|
||||
KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_HOME, KC_TRNS, KC_PGUP, KC_TRNS,
|
||||
KC_END , KC_UP, KC_PGDN, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_SPC,
|
||||
KC_TRNS, MO(10), KC_BSPC, KC_DEL, KC_TRNS
|
||||
),
|
||||
|
||||
[2] = LAYOUT_ortho(
|
||||
KC_2, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
M_VSC_MVEDTRPRVGRP, M_VSC_MVEDTRNXTGRP, KC_TRNS, KC_TRNS,
|
||||
M_VSC_EDGRPPRV, M_VSC_EDGRPNXT, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, M_VSC_SIDEBARFOCUS, M_VSC_SIDEBARCLOSE, M_VSC_TERMFOCUS, KC_TRNS,
|
||||
M_VSC_FILECLOSE, MO(10), KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[3] = LAYOUT_ortho(
|
||||
KC_3, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, M_GDB_PAUSE,
|
||||
M_GDB_RESTART, M_GDB_STOP, KC_TRNS, M_GDB_PAUSE,
|
||||
M_VSC_DBGCNSLFOCUS, M_GDB_STEPOVER, M_GDB_STEPIN, M_GDB_STEPOUT, M_GDB_PLAY,
|
||||
KC_TRNS, MO(10), KC_TRNS, KC_TRNS, M_GDB_PLAY
|
||||
),
|
||||
|
||||
[4] = LAYOUT_ortho(
|
||||
KC_4, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
M_OBS_VOICE_UNMUTE, M_OBS_MOOSIC_MUTE, M_OBS_MOOSIC_UNMUTE, KC_TRNS,
|
||||
M_OBS_DSKT_MUTE, M_OBS_DSKT_UNMUTE, M_OBS_VOICE_MUTE, KC_TRNS,
|
||||
KC_TRNS, M_OBS_BRB, M_OBS_GAME, M_OBS_JSTCHT, KC_TRNS,
|
||||
KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[5] = LAYOUT_ortho(
|
||||
KC_5, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[6] = LAYOUT_ortho(
|
||||
KC_6, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[7] = LAYOUT_ortho(
|
||||
KC_7, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[8] = LAYOUT_ortho(
|
||||
KC_8, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[9] = LAYOUT_ortho(
|
||||
KC_9, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[10] = LAYOUT_ortho(
|
||||
RESET, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
TO(7), TO(8), TO(9), KC_TRNS,
|
||||
TO(4), TO(5), TO(6), KC_TRNS,
|
||||
KC_TRNS, TO(1), TO(2), TO(3), KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
/* byte map for the goblin logo, knob goblin text, and level text */
|
||||
static void render_goblin_logo(void) {
|
||||
static const char PROGMEM my_logo[] = {
|
||||
0x00, 0xe0, 0x40, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x20, 0x10, 0x08, 0x08, 0x08,
|
||||
0x08, 0x08, 0x08, 0x10, 0x20, 0x60, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x40, 0xe0, 0x00,
|
||||
0x00, 0x03, 0x06, 0x3c, 0x49, 0x91, 0x21, 0x00, 0x40, 0x80, 0x80, 0x80, 0x80, 0x00, 0x60, 0x00,
|
||||
0x00, 0x60, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x00, 0x21, 0x91, 0x49, 0x3c, 0x06, 0x03, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1f, 0x60, 0x40, 0xc0, 0x06, 0x0e, 0x0f, 0x67, 0x50, 0xc0,
|
||||
0xc0, 0x50, 0x67, 0x0f, 0x0e, 0x06, 0xc0, 0x40, 0x60, 0x1f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x7b, 0xc7, 0x8e, 0x1e, 0x3e, 0x3e,
|
||||
0x3e, 0x3e, 0x1e, 0x8e, 0xc7, 0x7b, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x04,
|
||||
0x04, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x03, 0x03, 0x03, 0x03, 0x83, 0x03, 0x03, 0x03, 0x83, 0x03, 0x83, 0x03, 0x03, 0x03, 0x83,
|
||||
0x03, 0x03, 0x83, 0x83, 0x83, 0x03, 0x03, 0x83, 0x83, 0x83, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x04, 0x06, 0x09, 0x10, 0x00, 0x1f, 0x03, 0x06, 0x0c, 0x1f,
|
||||
0x00, 0x0f, 0x10, 0x10, 0x10, 0x0f, 0x00, 0x1f, 0x12, 0x12, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x78, 0xfc, 0x84, 0xa4, 0xa4, 0x68, 0x00, 0x78, 0x84, 0x84, 0x84, 0x78, 0x00, 0xfc, 0x94,
|
||||
0x94, 0x68, 0x00, 0xfc, 0x80, 0x80, 0x80, 0x00, 0xfc, 0x00, 0xfc, 0x18, 0x30, 0x60, 0xfc, 0x00,
|
||||
0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
|
||||
0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
|
||||
0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x50, 0x50, 0x50, 0x00, 0xf0, 0x00, 0x00,
|
||||
0x00, 0xf0, 0x00, 0xf0, 0x50, 0x50, 0x50, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x00, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x01, 0x02,
|
||||
0x01, 0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x00, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
oled_write_raw_P(my_logo, sizeof(my_logo));
|
||||
}
|
||||
|
||||
void oled_task_user(void) {
|
||||
|
||||
render_goblin_logo();
|
||||
|
||||
oled_set_cursor(0,11);
|
||||
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case 0:
|
||||
oled_write_P(PSTR(" NUM\n"), false);
|
||||
break;
|
||||
case 1:
|
||||
oled_write_P(PSTR(" NAV\n"), false);
|
||||
break;
|
||||
case 2:
|
||||
oled_write_P(PSTR(" CODE\n"), false);
|
||||
break;
|
||||
case 3:
|
||||
oled_write_P(PSTR(" GDB\n"), false);
|
||||
break;
|
||||
case 4:
|
||||
oled_write_P(PSTR(" OBS\n"), false);
|
||||
break;
|
||||
default:
|
||||
oled_write_P(PSTR(" NONE\n"), false);
|
||||
break;
|
||||
}
|
||||
}
|
3
keyboards/knobgoblin/keymaps/moults31/readme.md
Normal file
3
keyboards/knobgoblin/keymaps/moults31/readme.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Ortho Knob Goblin Layout
|
||||
|
||||
Via functionality for the Knob Goblin. Ortho layout.
|
3
keyboards/knobgoblin/keymaps/moults31/rules.mk
Normal file
3
keyboards/knobgoblin/keymaps/moults31/rules.mk
Normal file
@ -0,0 +1,3 @@
|
||||
VIA_ENABLE = YES
|
||||
LTO_ENABLE = YES
|
||||
BOOTLOADER = atmel-dfu
|
59
users/moults31/gdb.c
Normal file
59
users/moults31/gdb.c
Normal file
@ -0,0 +1,59 @@
|
||||
/* Copyright 2021 moults31
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "gdb.h"
|
||||
|
||||
bool process_record_gdb(uint16_t keycode, keyrecord_t *record) {
|
||||
bool rv = true;
|
||||
switch (keycode) {
|
||||
case M_GDB_PLAY:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_TAP(X_F5));
|
||||
}
|
||||
break;
|
||||
case M_GDB_PAUSE:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_TAP(X_F6));
|
||||
}
|
||||
break;
|
||||
case M_GDB_STEPOVER:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_TAP(X_F10));
|
||||
}
|
||||
break;
|
||||
case M_GDB_STEPIN:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_TAP(X_F11));
|
||||
}
|
||||
break;
|
||||
case M_GDB_STEPOUT:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_LSFT(SS_TAP(X_F11)));
|
||||
}
|
||||
break;
|
||||
case M_GDB_RESTART:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_LCTRL(SS_LSFT(SS_TAP(X_F5))));
|
||||
}
|
||||
break;
|
||||
case M_GDB_STOP:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_LSFT(SS_TAP(X_F5)));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
21
users/moults31/gdb.h
Normal file
21
users/moults31/gdb.h
Normal file
@ -0,0 +1,21 @@
|
||||
/* Copyright 2021 moults31
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "moults31.h"
|
||||
|
||||
bool process_record_gdb(uint16_t keycode, keyrecord_t *record);
|
114
users/moults31/moults31.c
Normal file
114
users/moults31/moults31.c
Normal file
@ -0,0 +1,114 @@
|
||||
/* Copyright 2021 moults31
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "moults31.h"
|
||||
|
||||
bool moults31_tap_custom_code(uint16_t keycode) {
|
||||
keyrecord_t record = {
|
||||
.event = {
|
||||
.pressed = 1,
|
||||
},
|
||||
};
|
||||
return process_record_user(keycode, &record);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
bool rv = true;
|
||||
switch (keycode) {
|
||||
case M_MST_CODEBLOCK:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("```");
|
||||
}
|
||||
break;
|
||||
|
||||
case M_VSC_TERMFOCUS:
|
||||
case M_VSC_SIDEBARFOCUS:
|
||||
case M_VSC_SIDEBARCLOSE:
|
||||
case M_VSC_FILECLOSE:
|
||||
case M_VSC_FILENXT:
|
||||
case M_VSC_FILEPRV:
|
||||
case M_VSC_DBGCNSLFOCUS:
|
||||
case M_VSC_MVEDTRNXTGRP:
|
||||
case M_VSC_MVEDTRPRVGRP:
|
||||
case M_VSC_EDGRPNXT:
|
||||
case M_VSC_EDGRPPRV:
|
||||
case M_VSC_VIEWSIZEINC:
|
||||
case M_VSC_VIEWSIZEDEC:
|
||||
rv = process_record_vsc(keycode, record);
|
||||
break;
|
||||
|
||||
case M_GDB_PLAY:
|
||||
case M_GDB_PAUSE:
|
||||
case M_GDB_STEPOVER:
|
||||
case M_GDB_STEPIN:
|
||||
case M_GDB_STEPOUT:
|
||||
case M_GDB_RESTART:
|
||||
case M_GDB_STOP:
|
||||
rv = process_record_gdb(keycode, record);
|
||||
break;
|
||||
|
||||
case M_OBS_BRB:
|
||||
case M_OBS_GAME:
|
||||
case M_OBS_JSTCHT:
|
||||
case M_OBS_DSKT_MUTE:
|
||||
case M_OBS_DSKT_UNMUTE:
|
||||
case M_OBS_VOICE_MUTE:
|
||||
case M_OBS_VOICE_UNMUTE:
|
||||
case M_OBS_MOOSIC_MUTE:
|
||||
case M_OBS_MOOSIC_UNMUTE:
|
||||
rv = process_record_obs(keycode, record);
|
||||
break;
|
||||
}
|
||||
return rv;
|
||||
};
|
||||
|
||||
#ifdef ENCODER_ENABLE
|
||||
__attribute__((weak)) bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
const layer_state_t curr_layer = get_highest_layer(layer_state);
|
||||
if (index == 1) { /* Bottom encoder */
|
||||
if(curr_layer == 2 || curr_layer == 3) {
|
||||
if (clockwise) {
|
||||
moults31_tap_custom_code(M_VSC_FILENXT);
|
||||
} else {
|
||||
moults31_tap_custom_code(M_VSC_FILEPRV);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (index == 0) { /* Top encoder */
|
||||
if(curr_layer == 2 || curr_layer == 3) {
|
||||
if (clockwise) {
|
||||
moults31_tap_custom_code(M_VSC_VIEWSIZEINC);
|
||||
} else {
|
||||
moults31_tap_custom_code(M_VSC_VIEWSIZEDEC);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (clockwise) {
|
||||
tap_code(KC_MNXT);
|
||||
} else {
|
||||
tap_code(KC_MPRV);
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
61
users/moults31/moults31.h
Normal file
61
users/moults31/moults31.h
Normal file
@ -0,0 +1,61 @@
|
||||
/* Copyright 2021 moults31
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#include "vscode.h"
|
||||
#include "obs.h"
|
||||
#include "gdb.h"
|
||||
|
||||
bool moults31_tap_custom_code(uint16_t keycode);
|
||||
|
||||
enum custom_keycodes {
|
||||
// VSCode keycodes
|
||||
M_VSC_TERMFOCUS = SAFE_RANGE,
|
||||
M_VSC_SIDEBARFOCUS,
|
||||
M_VSC_SIDEBARCLOSE,
|
||||
M_VSC_DBGCNSLFOCUS,
|
||||
M_VSC_EDGRPNXT,
|
||||
M_VSC_EDGRPPRV,
|
||||
M_VSC_MVEDTRNXTGRP,
|
||||
M_VSC_MVEDTRPRVGRP,
|
||||
M_VSC_VIEWSIZEINC,
|
||||
M_VSC_VIEWSIZEDEC,
|
||||
M_VSC_FILECLOSE,
|
||||
M_VSC_FILENXT,
|
||||
M_VSC_FILEPRV,
|
||||
// GDB keycodes (for vscode debugger)
|
||||
M_GDB_PLAY,
|
||||
M_GDB_PAUSE,
|
||||
M_GDB_STEPOVER,
|
||||
M_GDB_STEPIN,
|
||||
M_GDB_STEPOUT,
|
||||
M_GDB_RESTART,
|
||||
M_GDB_STOP,
|
||||
// MS Teams keycodes
|
||||
M_MST_CODEBLOCK,
|
||||
// OBS keycodes
|
||||
M_OBS_BRB,
|
||||
M_OBS_GAME,
|
||||
M_OBS_JSTCHT,
|
||||
M_OBS_DSKT_MUTE,
|
||||
M_OBS_DSKT_UNMUTE,
|
||||
M_OBS_VOICE_MUTE,
|
||||
M_OBS_VOICE_UNMUTE,
|
||||
M_OBS_MOOSIC_MUTE,
|
||||
M_OBS_MOOSIC_UNMUTE,
|
||||
};
|
80
users/moults31/obs.c
Normal file
80
users/moults31/obs.c
Normal file
@ -0,0 +1,80 @@
|
||||
/* Copyright 2021 moults31
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "obs.h"
|
||||
|
||||
bool process_record_obs(uint16_t keycode, keyrecord_t *record) {
|
||||
// Apply all 4 mods for custom OBS macros
|
||||
register_code(KC_LSHIFT);
|
||||
register_code(KC_LCTL);
|
||||
register_code(KC_LALT);
|
||||
register_code(KC_LGUI);
|
||||
|
||||
switch (keycode) {
|
||||
case M_OBS_BRB:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("1");
|
||||
}
|
||||
break;
|
||||
case M_OBS_GAME:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("2");
|
||||
}
|
||||
break;
|
||||
case M_OBS_JSTCHT:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("3");
|
||||
}
|
||||
break;
|
||||
case M_OBS_DSKT_MUTE:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("4");
|
||||
}
|
||||
break;
|
||||
case M_OBS_DSKT_UNMUTE:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("5");
|
||||
}
|
||||
break;
|
||||
case M_OBS_VOICE_MUTE:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("6");
|
||||
}
|
||||
break;
|
||||
case M_OBS_VOICE_UNMUTE:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("7");
|
||||
}
|
||||
break;
|
||||
case M_OBS_MOOSIC_MUTE:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("8");
|
||||
}
|
||||
break;
|
||||
case M_OBS_MOOSIC_UNMUTE:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("9");
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Unpress all 4 mods for custom OBS macros
|
||||
unregister_code(KC_LSHIFT);
|
||||
unregister_code(KC_LCTL);
|
||||
unregister_code(KC_LALT);
|
||||
unregister_code(KC_LGUI);
|
||||
|
||||
return true;
|
||||
}
|
21
users/moults31/obs.h
Normal file
21
users/moults31/obs.h
Normal file
@ -0,0 +1,21 @@
|
||||
/* Copyright 2021 moults31
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "moults31.h"
|
||||
|
||||
bool process_record_obs(uint16_t keycode, keyrecord_t *record);
|
5
users/moults31/readme.md
Normal file
5
users/moults31/readme.md
Normal file
@ -0,0 +1,5 @@
|
||||
# moults31 Userspace
|
||||
|
||||
## Features
|
||||
|
||||
- Custom macros for VScode, OBS, GDB (Visual)
|
10
users/moults31/rules.mk
Normal file
10
users/moults31/rules.mk
Normal file
@ -0,0 +1,10 @@
|
||||
SRC += moults31.c
|
||||
|
||||
# Custom macro sources
|
||||
SRC += vscode.c
|
||||
SRC += obs.c
|
||||
SRC += gdb.c
|
||||
|
||||
ifneq ($(PLATFORM),CHIBIOS)
|
||||
LTO_ENABLE = yes # Enable link time optimization
|
||||
endif
|
90
users/moults31/vscode.c
Normal file
90
users/moults31/vscode.c
Normal file
@ -0,0 +1,90 @@
|
||||
/* Copyright 2021 moults31
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "vscode.h"
|
||||
|
||||
bool process_record_vsc(uint16_t keycode, keyrecord_t *record) {
|
||||
bool rv = true;
|
||||
|
||||
switch (keycode) {
|
||||
case M_VSC_TERMFOCUS:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_LCTRL("`"));
|
||||
}
|
||||
break;
|
||||
case M_VSC_SIDEBARFOCUS:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_LCTRL("0"));
|
||||
}
|
||||
break;
|
||||
case M_VSC_SIDEBARCLOSE:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_LCTRL("b"));
|
||||
}
|
||||
break;
|
||||
case M_VSC_FILECLOSE:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_LCTRL("w"));
|
||||
}
|
||||
break;
|
||||
case M_VSC_FILENXT:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_K) SS_TAP(X_PGDOWN) SS_UP(X_LCTRL));
|
||||
}
|
||||
break;
|
||||
case M_VSC_FILEPRV:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_K) SS_TAP(X_PGUP) SS_UP(X_LCTRL));
|
||||
}
|
||||
break;
|
||||
case M_VSC_DBGCNSLFOCUS:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_D))));
|
||||
}
|
||||
break;
|
||||
case M_VSC_MVEDTRNXTGRP:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_RIGHT))));
|
||||
}
|
||||
break;
|
||||
case M_VSC_MVEDTRPRVGRP:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_LEFT))));
|
||||
}
|
||||
break;
|
||||
case M_VSC_EDGRPNXT:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_L))));
|
||||
}
|
||||
break;
|
||||
case M_VSC_EDGRPPRV:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_K))));
|
||||
}
|
||||
break;
|
||||
case M_VSC_VIEWSIZEINC:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_P))));
|
||||
}
|
||||
break;
|
||||
case M_VSC_VIEWSIZEDEC:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_O))));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
21
users/moults31/vscode.h
Normal file
21
users/moults31/vscode.h
Normal file
@ -0,0 +1,21 @@
|
||||
/* Copyright 2021 moults31
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "moults31.h"
|
||||
|
||||
bool process_record_vsc(uint16_t keycode, keyrecord_t *record);
|
Loading…
Reference in New Issue
Block a user