diff options
Diffstat (limited to 'keyboards/splitkb/kyria/keymaps/muppetjones')
5 files changed, 384 insertions, 0 deletions
diff --git a/keyboards/splitkb/kyria/keymaps/muppetjones/.clang-format b/keyboards/splitkb/kyria/keymaps/muppetjones/.clang-format new file mode 100644 index 0000000000..df3dbd17b4 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/muppetjones/.clang-format @@ -0,0 +1,26 @@ +--- +BasedOnStyle: Google +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: 'true' +AlignConsecutiveDeclarations: 'true' +AlignOperands: 'true' +AllowAllParametersOfDeclarationOnNextLine: 'false' +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: 'false' +BinPackArguments: 'true' +BinPackParameters: 'true' +ColumnLimit: '160' +IndentCaseLabels: 'true' +IndentPPDirectives: AfterHash +IndentWidth: '4' +MaxEmptyLinesToKeep: '1' +PointerAlignment: Right +SortIncludes: 'false' +SpaceBeforeAssignmentOperators: 'true' +SpaceBeforeParens: ControlStatements +SpaceInEmptyParentheses: 'false' +TabWidth: '4' +UseTab: Never + +... diff --git a/keyboards/splitkb/kyria/keymaps/muppetjones/README.md b/keyboards/splitkb/kyria/keymaps/muppetjones/README.md new file mode 100644 index 0000000000..20fdd47025 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/muppetjones/README.md @@ -0,0 +1,11 @@ +# Kyria + +## Compile + +```shell +make splitkb/kyria/rev1:muppetjones:avrdude-split-left +``` + +```shell +make splitkb/kyria/rev1:muppetjones:avrdude-split-right +``` diff --git a/keyboards/splitkb/kyria/keymaps/muppetjones/config.h b/keyboards/splitkb/kyria/keymaps/muppetjones/config.h new file mode 100644 index 0000000000..92d495be4a --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/muppetjones/config.h @@ -0,0 +1,60 @@ +/* Copyright 2020 Stephen Bush <muppetjones@gmail.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/>. + */ + +#pragma once + +#ifdef OLED_ENABLE +# define OLED_DISPLAY_128X64 +#endif + +// If you are using an Elite C rev3 on the slave side, uncomment the lines below: +// #define SPLIT_USB_DETECT +// #define NO_USB_STARTUP_CHECK + +// EC11K encoders have a different resolution than other EC11 encoders. +// When using the default resolution of 4, if you notice your encoder skipping +// every other tick, lower the resolution to 2. +#define ENCODER_RESOLUTION 2 +#define ENCODER_DIRECTION_FLIP + +// The Leader key allows to flexibly assign macros to key sequences. +#define LEADER_PER_KEY_TIMING +#define LEADER_TIMEOUT 350 + +// Change "hold" time (default is 200 ms) +// -- used for tap dance and other tap mods +// -- defined in user namespace +// #define TAPPING_TERM 200 + +// Prevent normal rollover on alphas from accidentally triggering mods. +#define IGNORE_MOD_TAP_INTERRUPT + +// Enable rapid switch from tap to hold, disables double tap hold auto-repeat. +#define TAPPING_FORCE_HOLD + +// Reduce firmware size +// https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/ +// also requires EXTRAFLAGS in config.h +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +// Allows to use either side as the master. Look at the documentation for info: +// https://docs.qmk.fm/#/config_options?id=setting-handedness +#define EE_HANDS + +// Allows media codes to properly register in macros and rotary encoder code +#define TAP_CODE_DELAY 10 +#define COMBO_TERM 40 diff --git a/keyboards/splitkb/kyria/keymaps/muppetjones/keymap.c b/keyboards/splitkb/kyria/keymaps/muppetjones/keymap.c new file mode 100644 index 0000000000..ca4a306341 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/muppetjones/keymap.c @@ -0,0 +1,276 @@ +/* Copyright 2020 Stephen J. Bush + * + * 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 "muppetjones.h" +#include "rgblight.h" + +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) + +/* Layers from muppetjones.h + _CLMK_DH = 0, + _MOUSE, + _LOWER, + _RAISE, + _NAV, + _ADJUST, + */ + +/* + * Custom Keys + */ + +#ifdef ENCODER_ENABLE +bool encoder_update_standard(uint8_t index, bool clockwise); +#endif + +/* + * LAYERS + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off +/* + * Base Layer: Colemak DH + * + * ,-------------------------------------------. ,-------------------------------------------. + * |CAPSWORD| Q | W | F | P | B | | J | L | U | Y | ; : | | \ | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |ESC/HYPR| A | R | S | T | G | | M | N | E | I | O | ' " | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | Z | X | C | D | V |LShift|Leader| | Del | Tab | K | H | , < | . > | / ? | Sft/Ent| + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | MUTE | Del | Enter| Space| Enter| | Bspc | Space| Hyper| Tab | AltGr| + * | | | Alt | Lower| Raise| | | Nav | Esc | Raise| | + * `----------------------------------' `----------------------------------' + */ +[_CLMK_DH] = LAYOUT_wrapper( + CAPSWRD, __COLEMAK_MOD_DH_L1________________________, __COLEMAK_MOD_DH_R1_W_QUOT_________________, KC_BSLS, + HY_ESC, __COLEMAK_MOD_DH_L2_W_GACS_________________, __COLEMAK_MOD_DH_R2_W_SCAG_________________, KC_QUOT, + TD_LAYR, __COLEMAK_MOD_DH_L3________________________, KC_LSFT, KC_LEAD, KC_DEL, KC_TAB, __COLEMAK_MOD_DH_R3________________________, KC_SFTENT, + KC_MUTE, KC_DEL, HY_ESC, LOW_BSP, RAI_ENT, KC_BSPC, NAV_SPC, HY_ESC, RAI_TAB, KC_RALT +), +[_QWERTY] = LAYOUT_wrapper( + _______, __QWERTY_L1________________________________, __QWERTY_R1________________________________, _______, + _______, __QWERTY_L2________________________________, __QWERTY_R2________________________________, _______, + _______, __QWERTY_L3________________________________, _______, _______, _______, _______, __QWERTY_R3________________________________, _______, + __BLANK____________________________________, __BLANK____________________________________ +), +[_MOUSE] = LAYOUT_wrapper( + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __BLANK____________________________________, __BLANK____________________________________, _______, + _______, __BLANK____________________________________, _______, _______, _______, _______, __BLANK____________________________________, _______, + KC_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN2 +), +/* + * Lower Layer: Numpad and some symbols + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | ~ | ` | ( | ) | xxxx | | / ? | 7 & | 8 * | 9 ( | - _ | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | LGUI | LALT |LCTL [|LSFT ]| _ - | | * | 4 $ | 5 % | 6 ^ | , < | + | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | xxxx | xxxx | { | } | LSFT | | | | | | 0 ) | 1 ! | 2 @ | 3 # | = + | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | Lower| | | | | Nav | 0 | . | | + * `----------------------------------' `----------------------------------' + */ + [_LOWER] = LAYOUT_wrapper( + _______, __SYMBOLS_L1_______________________________, __NUMPAD_R1________________________________, _______, + _______, __SYMBOLS_L2_______________________________, __NUMPAD_R2________________________________, KC_COMM, + _______, __SYMBOLS_L3_______________________________, _______, _______, _______, _______, __NUMPAD_R3________________________________, KC_DOT, + __BLANK____________________________________, _______, KC_SPC, KC_0, KC_DOT, _______ + ), +/* + * Raise Layer: Symbols + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | ! | @ | { | } | | | | | & | € | | | \ | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` | | _ | - | / | * | % | ' " | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | | | + | = | , | . | / ? | - _ | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | Lower| | | | | Nav | Raise| | | + * `----------------------------------' `----------------------------------' + */ + // [_RAISE] = LAYOUT( + // _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, _______, KC_AMPR, _______, _______, _______, KC_BSLS, + // _______, KC_HASH, KC_DLR, KC_LBRC, KC_RBRC, KC_GRV, KC_UNDS, KC_MINS, KC_SLSH, KC_ASTR, KC_PERC, KC_QUOT, + // _______, KC_PERC, KC_CIRC, KC_LCBR, KC_RCBR, KC_TILD, _______, _______, _______, _______, KC_PLUS, KC_EQL, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + // ), + [_RAISE] = LAYOUT_wrapper( + _______, XXXXXXX, XXXXXXX, KC_GRV, KC_GRV, KC_BSLS, __SYMBOLS_R1_______________________________, _______, + _______, XXXXXXX, XXXXXXX, KC_UNDS, KC_MINS, KC_TILD, __SYMBOLS_R2_______________________________, _______, + _______, XXXXXXX, XXXXXXX, KC_PLUS, KC_EQL, KC_GRV, _______, _______, _______, _______, __SYMBOLS_R3_______________________________, _______, + __BLANK____________________________________, __BLANK____________________________________ + ), +/* + * Navigation Layer (w/ symbols on left) + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | | | | | | PgUp | Home | Up | End | | ScrlLk | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | GUI | ALT | CTL | SFT | | | PgDn | Left | Down | Up | Right| CapsLk | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | Lower| | | | | Nav | Raise| | | + * `----------------------------------' `----------------------------------' + */ + [_NAV] = LAYOUT_wrapper( + _______, __VIM_L1___________________________________, __NAV_R1___________________________________, KC_SLCK, + _______, __BLANK_W_GACS_____________________________, __NAV_R2___________________________________, KC_CAPS, + _______, __BLANK____________________________________, _______, _______, _______, _______, __NAV_R3___________________________________, _______, + __BLANK____________________________________, __BLANK____________________________________ + ), + /* + * Adjust Layer: Function keys, RGB + * + * ,-------------------------------------------. ,-------------------------------------------. + * | RESET |RESET |DEBUG | | | | | | F1 | F2 | F3 | F4 | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | TOG | SAI | HUI | VAI | MOD | | | F5 | F6 | F7 | F8 | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | SAD | HUD | VAD | RMOD | | | | | | | F9 | F10 | F11 | F12 | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_ADJUST] = LAYOUT_wrapper( + RESET, __ADJUST_L1________________________________, __MEDIA_R1_________________________________, _______, + _______, __ADJUST_L2________________________________, __MEDIA_R2_________________________________, _______, + _______, __ADJUST_L3________________________________, _______, _______, _______, _______, __MEDIA_R3_________________________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + // /* + // * Layer template + // * + // * ,-------------------------------------------. ,-------------------------------------------. + // * | | | | | | | | | | | | | | + // * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + // * | | | | | | | | | | | | | | + // * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + // * | | | | | | | | | | | | | | | | | | + // * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + // * | | | | | | | | | | | | + // * | | | | | | | | | | | | + // * `----------------------------------' `----------------------------------' + // */ + // [_LAYERINDEX] = LAYOUT( + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + // ), + // clang-format on +}; + +/* + * + */ + +void keyboard_post_init_user(void) { + // Call the keymap level matrix init. + +#ifdef RGBLIGHT_ENABLE + set_rgb_home(); +#endif +} + +layer_state_t layer_state_set_user(layer_state_t state) { +#ifdef RGBLIGHT_ENABLE + set_rgb_by_layer(state); +#endif + return state; +} + +bool process_record_keymap(uint16_t keycode, keyrecord_t* record) { + // Regular user keycode case statement + switch (keycode) { + default: + return true; + } + return true; +} + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { +# ifdef POINTING_DEVICE_ENABLE + if (IS_LAYER_ON(_MOUSE)) + return encoder_update_mouse(index, clockwise); + else +# endif + return encoder_update_standard(index, clockwise); +} + +bool encoder_update_standard(uint8_t index, bool clockwise) { + if (index == 0) { + // Volume control + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + // Page up/Page down +# ifdef MOUSEKEY_ENABLE + if (clockwise) { + tap_code(KC_WH_D); + } else { + tap_code(KC_WH_U); + } +# else + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } +# endif + } + return true; +} +#endif + +#ifdef RGBLIGHT_ENABLE +void set_layer_hsv(layer_state_t state, HSV* layer_color) { + uint16_t h = layer_color->h, s = layer_color->s, v = layer_color->v; + switch (get_highest_layer(state)) { + case _RAISE: + h += 3 * RGBLIGHT_HUE_STEP; + break; + case _LOWER: + h += -3 * RGBLIGHT_HUE_STEP; + break; + case _NAV: + h += 2 * RGBLIGHT_HUE_STEP; + break; + case _MOUSE: + h += -8 * RGBLIGHT_HUE_STEP; + break; + default: + break; + } + layer_color->h = h % 255; + layer_color->s = s; + layer_color->v = v % 255; + return; +} +#endif diff --git a/keyboards/splitkb/kyria/keymaps/muppetjones/rules.mk b/keyboards/splitkb/kyria/keymaps/muppetjones/rules.mk new file mode 100644 index 0000000000..b7e46ecfd2 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/muppetjones/rules.mk @@ -0,0 +1,11 @@ +OLED_ENABLE = no # Enables the use of OLED displays +ENCODER_ENABLE = yes # Enables the use of one or more encoders +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +LEADER_ENABLE = yes # Enable the Leader Key feature +MOUSEKEY_ENABLE = yes +TAP_DANCE_ENABLE = yes +POINTING_DEVICE_ENABLE = yes +COMBO_ENABLE = yes + +# Reduce firmware size +# https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/ |