diff options
Diffstat (limited to 'keyboards/bastardkb/charybdis/3x5/keymaps/via')
4 files changed, 0 insertions, 446 deletions
diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/via/config.h b/keyboards/bastardkb/charybdis/3x5/keymaps/via/config.h deleted file mode 100644 index d20131e9cf..0000000000 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/via/config.h +++ /dev/null @@ -1,113 +0,0 @@ -/** - * Copyright 2021 Charly Delay <charly@codesink.dev> (@0xcharly) - * - * 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 VIA_ENABLE -/* VIA configuration. */ -# define DYNAMIC_KEYMAP_LAYER_COUNT 7 -#endif // VIA_ENABLE - -/* Disable unused features. */ -#define NO_ACTION_ONESHOT - -#ifndef TAPPING_TERM -/** - * \brief Configure the global tapping term (default: 200ms). - * - * If you have a lot of accidental mod activations, crank up the tapping term. - * - * See docs.qmk.fm/using-qmk/software-features/tap_hold#tapping-term - */ -# define TAPPING_TERM 200 -#endif // TAPPING_TERM - -/** - * \brief Enable rapid switch from tap to hold. - * - * Note that a side-effect of this setting is to disable auto-repeat when - * pressing key twice, except for one-shot keys. - * - * See docs.qmk.fm/using-qmk/software-features/tap_hold#tapping-force-hold - */ -#define TAPPING_FORCE_HOLD - -/* - * Tap-or-Hold decision modes. - * - * Note that the following flags behave differently when combined (ie. when 2 or - * more are enabled). - * - * See bit.ly/tap-or-hold for a visual explanation of the following tap-or-hold - * decision modes. - */ - -/** - * \brief Faster tap-hold trigger. - * - * Without `PERMISSIVE_HOLD`, within `TAPPING_TERM`: - * Mod(a)🠗 e🠗 e🠕 Mod(a)🠕 ➞ ae - * With `PERMISSIVE_HOLD`, within `TAPPING_TERM`: - * Mod(a)🠗 e🠗 e🠕 Mod(a)🠕 ➞ Mod+e - * - * See docs.qmk.fm/using-qmk/software-features/tap_hold#permissive-hold - */ -#define PERMISSIVE_HOLD - -/** - * \brief Prevent normal rollover on alphas from accidentally triggering mods. - * - * Ignores key presses that interrupt a mod-tap. Must-have for Home Row mod. - * - * Without `IGNORE_MOD_TAP_INTERRUPT`, within `TAPPING_TERM`: - * Mod(a)🠗 e🠗 Mod(a)🠕 e🠕 ➞ Mod+e - * With `IGNORE_MOD_TAP_INTERRUPT`, within `TAPPING_TERM`: - * Mod(a)🠗 e🠗 Mod(a)🠕 e🠕 ➞ ae - * - * See docs.qmk.fm/using-qmk/software-features/tap_hold#ignore-mod-tap-interrupt - */ -#define IGNORE_MOD_TAP_INTERRUPT - -/* Charybdis-specific features. */ - -#ifdef POINTING_DEVICE_ENABLE -// Automatically enable the pointer layer when moving the trackball. See also: -// - `CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS` -// - `CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD` -// #define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE -#endif // POINTING_DEVICE_ENABLE - -/* RGB Matrix. */ - -#ifdef RGB_MATRIX_ENABLE -// Limit maximum brightness to keep power consumption reasonable, and avoid -// disconnects. -# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 64 - -// Rainbow swirl as startup mode. -# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT - -// Slow swirl at startup. -# define RGB_MATRIX_STARTUP_SPD 32 - -// Startup values. -# define RGB_MATRIX_STARTUP_HUE 0 -# define RGB_MATRIX_STARTUP_SAT 255 -# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS -# define RGB_MATRIX_STARTUP_HSV RGB_MATRIX_STARTUP_HUE, RGB_MATRIX_STARTUP_SAT, RGB_MATRIX_STARTUP_VAL -#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c deleted file mode 100644 index b54c58cf0c..0000000000 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c +++ /dev/null @@ -1,269 +0,0 @@ -/** - * Copyright 2021 Charly Delay <charly@codesink.dev> (@0xcharly) - * - * 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 - -#ifdef CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE -# include "timer.h" -#endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE - -enum charybdis_keymap_layers { - LAYER_BASE = 0, - LAYER_FUNCTION, - LAYER_NAVIGATION, - LAYER_MEDIA, - LAYER_POINTER, - LAYER_NUMERAL, - LAYER_SYMBOLS, -}; - -// Automatically enable sniping-mode on the pointer layer. -#define CHARYBDIS_AUTO_SNIPING_ON_LAYER LAYER_POINTER - -#ifdef CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE -static uint16_t auto_pointer_layer_timer = 0; - -# ifndef CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS -# define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS 1000 -# endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS - -# ifndef CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD -# define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD 8 -# endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD -#endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE - -#define ESC_MED LT(LAYER_MEDIA, KC_ESC) -#define SPC_NAV LT(LAYER_NAVIGATION, KC_SPC) -#define TAB_FUN LT(LAYER_FUNCTION, KC_TAB) -#define ENT_SYM LT(LAYER_SYMBOLS, KC_ENT) -#define BSP_NUM LT(LAYER_NUMERAL, KC_BSPC) -#define _L_PTR(KC) LT(LAYER_POINTER, KC) - -#ifndef POINTING_DEVICE_ENABLE -# define DRGSCRL KC_NO -# define DPI_MOD KC_NO -# define S_D_MOD KC_NO -# define SNIPING KC_NO -#endif // !POINTING_DEVICE_ENABLE - -// clang-format off -/** \brief QWERTY layout (3 rows, 10 columns). */ -#define LAYOUT_LAYER_BASE \ - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, \ - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \ - ESC_MED, SPC_NAV, TAB_FUN, ENT_SYM, BSP_NUM - -/** Convenience row shorthands. */ -#define _______________DEAD_HALF_ROW_______________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX -#define ______________HOME_ROW_GACS_L______________ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX -#define ______________HOME_ROW_GACS_R______________ XXXXXXX, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI - -/* - * Layers used on the Charybdis Nano. - * - * These layers started off heavily inspired by the Miryoku layout, but trimmed - * down and tailored for a stock experience that is meant to be fundation for - * further personalization. - * - * See https://github.com/manna-harbour/miryoku for the original layout. - */ - -/** - * \brief Function layer. - * - * Secondary right-hand layer has function keys mirroring the numerals on the - * primary layer with extras on the pinkie column, plus system keys on the inner - * column. App is on the tertiary thumb key and other thumb keys are duplicated - * from the base layer to enable auto-repeat. - */ -#define LAYOUT_LAYER_FUNCTION \ - _______________DEAD_HALF_ROW_______________, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F12, \ - ______________HOME_ROW_GACS_L______________, KC_SLCK, KC_F4, KC_F5, KC_F6, KC_F11, \ - _______________DEAD_HALF_ROW_______________, KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F10, \ - XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX - -/** - * \brief Media layer. - * - * Tertiary left- and right-hand layer is media and RGB control. This layer is - * symmetrical to accomodate the left- and right-hand trackball. - */ -#define LAYOUT_LAYER_MEDIA \ - XXXXXXX,RGB_RMOD, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX,RGB_RMOD, RGB_TOG, RGB_MOD, XXXXXXX, \ - KC_MPRV, KC_VOLD, KC_MUTE, KC_VOLU, KC_MNXT, KC_MPRV, KC_VOLD, KC_MUTE, KC_VOLU, KC_MNXT, \ - XXXXXXX, XXXXXXX, XXXXXXX, EEP_RST, QK_BOOT, QK_BOOT, EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, \ - _______, KC_MPLY, KC_MSTP, KC_MSTP, KC_MPLY - -/** \brief Mouse emulation and pointer functions. */ -#define LAYOUT_LAYER_POINTER \ - XXXXXXX, XXXXXXX, XXXXXXX, DPI_MOD, S_D_MOD, S_D_MOD, DPI_MOD, XXXXXXX, XXXXXXX, XXXXXXX, \ - ______________HOME_ROW_GACS_L______________, ______________HOME_ROW_GACS_R______________, \ - _______, DRGSCRL, SNIPING, EEP_RST, QK_BOOT, QK_BOOT, EEP_RST, SNIPING, DRGSCRL, _______, \ - KC_BTN2, KC_BTN1, KC_BTN3, KC_BTN3, KC_BTN1 - -/** - * \brief Navigation layer. - * - * Primary right-hand layer (left home thumb) is navigation and editing. Cursor - * keys are on the home position, line and page movement below, clipboard above, - * caps lock and insert on the inner column. Thumb keys are duplicated from the - * base layer to avoid having to layer change mid edit and to enable auto-repeat. - */ -#define LAYOUT_LAYER_NAVIGATION \ - _______________DEAD_HALF_ROW_______________, _______________DEAD_HALF_ROW_______________, \ - ______________HOME_ROW_GACS_L______________, KC_CLCK, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, \ - _______________DEAD_HALF_ROW_______________, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, \ - XXXXXXX, _______, XXXXXXX, KC_ENT, KC_BSPC - -/** - * \brief Numeral layout. - * - * Primary left-hand layer (right home thumb) is numerals and symbols. Numerals - * are in the standard numpad locations with symbols in the remaining positions. - * `KC_DOT` is duplicated from the base layer. - */ -#define LAYOUT_LAYER_NUMERAL \ - KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, _______________DEAD_HALF_ROW_______________, \ - KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, ______________HOME_ROW_GACS_R______________, \ - KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, _______________DEAD_HALF_ROW_______________, \ - KC_DOT, KC_0, KC_MINS, XXXXXXX, _______ - -/** - * \brief Symbols layer. - * - * Secondary left-hand layer has shifted symbols in the same locations to reduce - * chording when using mods with shifted symbols. `KC_LPRN` is duplicated next to - * `KC_RPRN`. - */ -#define LAYOUT_LAYER_SYMBOLS \ - KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, _______________DEAD_HALF_ROW_______________, \ - KC_COLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, ______________HOME_ROW_GACS_R______________, \ - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, _______________DEAD_HALF_ROW_______________, \ - KC_LPRN, KC_RPRN, KC_UNDS, _______, XXXXXXX - -/** - * \brief Add Home Row mod to a layout. - * - * Expects a 10-key per row layout. Adds support for GACS (Gui, Alt, Ctl, Shift) - * home row. The layout passed in parameter must contain at least 20 keycodes. - * - * This is meant to be used with `LAYER_ALPHAS_QWERTY` defined above, eg.: - * - * HOME_ROW_MOD_GACS(LAYER_ALPHAS_QWERTY) - */ -#define _HOME_ROW_MOD_GACS( \ - L00, L01, L02, L03, L04, R05, R06, R07, R08, R09, \ - L10, L11, L12, L13, L14, R15, R16, R17, R18, R19, \ - ...) \ - L00, L01, L02, L03, L04, \ - R05, R06, R07, R08, R09, \ - LGUI_T(L10), LALT_T(L11), LCTL_T(L12), LSFT_T(L13), L14, \ - R15, RSFT_T(R16), RCTL_T(R17), LALT_T(R18), RGUI_T(R19), \ - __VA_ARGS__ -#define HOME_ROW_MOD_GACS(...) _HOME_ROW_MOD_GACS(__VA_ARGS__) - -/** - * \brief Add pointer layer keys to a layout. - * - * Expects a 10-key per row layout. The layout passed in parameter must contain - * at least 30 keycodes. - * - * This is meant to be used with `LAYER_ALPHAS_QWERTY` defined above, eg.: - * - * POINTER_MOD(LAYER_ALPHAS_QWERTY) - */ -#define _POINTER_MOD( \ - L00, L01, L02, L03, L04, R05, R06, R07, R08, R09, \ - L10, L11, L12, L13, L14, R15, R16, R17, R18, R19, \ - L20, L21, L22, L23, L24, R25, R26, R27, R28, R29, \ - ...) \ - L00, L01, L02, L03, L04, \ - R05, R06, R07, R08, R09, \ - L10, L11, L12, L13, L14, \ - R15, R16, R17, R18, R19, \ - _L_PTR(L20), L21, L22, L23, L24, \ - R25, R26, R27, R28, _L_PTR(R29), \ - __VA_ARGS__ -#define POINTER_MOD(...) _POINTER_MOD(__VA_ARGS__) - -#define LAYOUT_wrapper(...) LAYOUT_charybdis_3x5(__VA_ARGS__) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [LAYER_BASE] = LAYOUT_wrapper( - POINTER_MOD(HOME_ROW_MOD_GACS(LAYOUT_LAYER_BASE)) - ), - [LAYER_FUNCTION] = LAYOUT_wrapper(LAYOUT_LAYER_FUNCTION), - [LAYER_NAVIGATION] = LAYOUT_wrapper(LAYOUT_LAYER_NAVIGATION), - [LAYER_MEDIA] = LAYOUT_wrapper(LAYOUT_LAYER_MEDIA), - [LAYER_NUMERAL] = LAYOUT_wrapper(LAYOUT_LAYER_NUMERAL), - [LAYER_POINTER] = LAYOUT_wrapper(LAYOUT_LAYER_POINTER), - [LAYER_SYMBOLS] = LAYOUT_wrapper(LAYOUT_LAYER_SYMBOLS), -}; -// clang-format on - -#ifdef POINTING_DEVICE_ENABLE -# ifdef CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE -report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) { - if (abs(mouse_report.x) > CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD || abs(mouse_report.y) > CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD) { - if (auto_pointer_layer_timer == 0) { - layer_on(LAYER_POINTER); -# ifdef RGB_MATRIX_ENABLE - rgb_matrix_mode_noeeprom(RGB_MATRIX_NONE); - rgb_matrix_sethsv_noeeprom(HSV_GREEN); -# endif // RGB_MATRIX_ENABLE - } - auto_pointer_layer_timer = timer_read(); - } - return mouse_report; -} - -void matrix_scan_user(void) { - if (auto_pointer_layer_timer != 0 && TIMER_DIFF_16(timer_read(), auto_pointer_layer_timer) >= CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS) { - auto_pointer_layer_timer = 0; - layer_off(LAYER_POINTER); -# ifdef RGB_MATRIX_ENABLE - rgb_matrix_mode_noeeprom(RGB_MATRIX_STARTUP_MODE); -# endif // RGB_MATRIX_ENABLE - } -} -# endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE - -# ifdef CHARYBDIS_AUTO_SNIPING_ON_LAYER -layer_state_t layer_state_set_user(layer_state_t state) { - charybdis_set_pointer_sniping_enabled(layer_state_cmp(state, CHARYBDIS_AUTO_SNIPING_ON_LAYER)); - return state; -} -# endif // CHARYBDIS_AUTO_SNIPING_ON_LAYER -#endif // POINTING_DEVICE_ENABLE - -#ifdef RGB_MATRIX_ENABLE -// Forward-declare this helper function since it is defined in -// rgb_matrix.c. -void rgb_matrix_update_pwm_buffers(void); -#endif - -void shutdown_user(void) { -#ifdef RGBLIGHT_ENABLE - rgblight_enable_noeeprom(); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - rgblight_setrgb_red(); -#endif // RGBLIGHT_ENABLE -#ifdef RGB_MATRIX_ENABLE - rgb_matrix_set_color_all(RGB_RED); - rgb_matrix_update_pwm_buffers(); -#endif // RGB_MATRIX_ENABLE -} diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/via/readme.md b/keyboards/bastardkb/charybdis/3x5/keymaps/via/readme.md deleted file mode 100644 index dc7f6f2d30..0000000000 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/via/readme.md +++ /dev/null @@ -1,63 +0,0 @@ -# Charybdis (3x5) `via` keymap - -The Charydbis (3x5) `via` keymap is based on a QWERTY layout with [home row mods](https://precondition.github.io/home-row-mods) and [Miryoku-inspired layers](https://github.com/manna-harbour/miryoku), and some features and changes specific to the Charybdis. - -This layout supports RGB matrix. However, due to space constraints on the MCU, only a limited number of effect can be enabled at once. Look at the `config.h` file and enable your favorite effect. - -This layout also supports VIA. - -## Customizing the keymap - -### Dynamic DPI scaling - -Use the following keycodes to change the default DPI: - -- `POINTER_DEFAULT_DPI_FORWARD`: increases the DPI; decreases when shifted; -- `POINTER_DEFAULT_DPI_REVERSE`: decreases the DPI; increases when shifted. - -There's a maximum of 16 possible values for the sniping mode DPI. See the [Charybdis documentation](../../README.md) for more information. - -Use the following keycodes to change the sniping mode DPI: - -- `POINTER_SNIPING_DPI_FORWARD`: increases the DPI; decreases when shifted; -- `POINTER_SNIPING_DPI_REVERSE`: decreases the DPI; increases when shifted. - -There's a maximum of 4 possible values for the sniping mode DPI. See the [Charybdis documentation](../../README.md) for more information. - -### Drag-scroll - -Use the `DRAGSCROLL_MODE` keycode to enable drag-scroll on hold. Use the `DRAGSCROLL_TOGGLE` keycode to enable/disable drag-scroll on key press. - -### Sniping - -Use the `SNIPING_MODE` keycode to enable sniping mode on hold. Use the `SNIPING_TOGGLE` keycode to enable/disable sniping mode on key press. - -Change the value of `CHARYBDIS_AUTO_SNIPING_ON_LAYER` to automatically enable sniping mode on layer change. By default, sniping mode is enabled on the pointer layer: - -```c -#define CHARYBDIS_AUTO_SNIPING_ON_LAYER LAYER_POINTER -``` - -### Auto pointer layer - -The pointer layer can be automatically enabled when moving the trackball. To enable or disable this behavior, add or remove the following define: - -```c -#define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE -``` - -By default, the layer is turned off 1 second after the last registered trackball movement: - -```c -#define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS 1000 -``` - -The trigger sensibility can also be tuned. The lower the value, the more sensible the trigger: - -```c -#define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD 8 -``` - -## Layout - -![Keymap layout (generated with keyboard-layout-editor.com)](https://i.imgur.com/uHEnqEN.png) diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/via/rules.mk b/keyboards/bastardkb/charybdis/3x5/keymaps/via/rules.mk deleted file mode 100644 index 1e5b99807c..0000000000 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/via/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes |