diff options
| -rw-r--r-- | keyboards/bm40hsrgb/keymaps/signynt/config.h | 80 | ||||
| -rw-r--r-- | keyboards/bm40hsrgb/keymaps/signynt/keymap.c | 241 | ||||
| -rw-r--r-- | keyboards/bm40hsrgb/keymaps/signynt/readme.md | 117 | ||||
| -rw-r--r-- | keyboards/bm40hsrgb/keymaps/signynt/rules.mk | 7 | ||||
| -rw-r--r-- | keyboards/bm40hsrgb/keymaps/signynt_2_loud/config.h | 80 | ||||
| -rw-r--r-- | keyboards/bm40hsrgb/keymaps/signynt_2_loud/keymap.c | 214 | ||||
| -rw-r--r-- | keyboards/bm40hsrgb/keymaps/signynt_2_loud/readme.md | 117 | ||||
| -rw-r--r-- | keyboards/bm40hsrgb/keymaps/signynt_2_loud/rules.mk | 7 | ||||
| -rw-r--r-- | keyboards/bm40hsrgb/keymaps/signynt_2_quiet/config.h | 80 | ||||
| -rw-r--r-- | keyboards/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c | 178 | ||||
| -rw-r--r-- | keyboards/bm40hsrgb/keymaps/signynt_2_quiet/readme.md | 117 | ||||
| -rw-r--r-- | keyboards/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk | 7 | 
12 files changed, 1245 insertions, 0 deletions
| diff --git a/keyboards/bm40hsrgb/keymaps/signynt/config.h b/keyboards/bm40hsrgb/keymaps/signynt/config.h new file mode 100644 index 0000000000..9fcddca2cb --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt/config.h @@ -0,0 +1,80 @@ +// qmk flash -kb bm40hsrgb -km signynt + +/* Copyright 2021 Vincenzo Mitchell Barroso + * + * 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 RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +#define RGBLIGHT_ANIMATIONS + +//#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +#define RGBLIGHT_LIMIT_VAL 10 + +//bootmagic +#define BOOTMAGIC_KEY_SALT KC_V +#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q + +#ifdef RGB_MATRIX_ENABLE + +#define TAPPING_TERM 200 + +//-------------------------------------------------------------------------------------------------------- + +//disable broken animations +#define DISABLE_RGB_MATRIX_ALPHAS_MODS +#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define DISABLE_RGB_MATRIX_BREATHING +#define DISABLE_RGB_MATRIX_BAND_SAT +#define DISABLE_RGB_MATRIX_BAND_VAL +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define DISABLE_RGB_MATRIX_CYCLE_ALL +#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +//#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +//#define DISABLE_RGB_MATRIX_DUAL_BEACON +#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL +//#define DISABLE_RGB_MATRIX_RAINBOW_BEACON +//#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS +//#define DISABLE_RGB_MATRIX_RAINDROPS +#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // DO NOT ENABLE +//#define DISABLE_RGB_MATRIX_TYPING_HEATMAP +//#define DISABLE_RGB_MATRIX_DIGITAL_RAIN +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +//#define DISABLE_RGB_MATRIX_SPLASH +//#define DISABLE_RGB_MATRIX_MULTISPLASH +//#define DISABLE_RGB_MATRIX_SOLID_SPLASH +//#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#undef RGB_MATRIX_STARTUP_MODE + +#define RGBLIGHT_HUE_STEP 20 + +#endif diff --git a/keyboards/bm40hsrgb/keymaps/signynt/keymap.c b/keyboards/bm40hsrgb/keymaps/signynt/keymap.c new file mode 100644 index 0000000000..b04f7ffb7c --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt/keymap.c @@ -0,0 +1,241 @@ +// qmk flash -kb bm40hsrgb -km signynt + +/* Copyright 2021 Vincenzo Mitchell Barroso + * + * 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 + +// non-KC_ keycodes +#define KC_RST RESET +#define KC_TOG RGB_TOG +#define KC_MOD RGB_MOD +#define KC_HUI RGB_HUI +#define KC_SAI RGB_SAI +#define KC_VAI RGB_VAI + +//define layers +enum layers {BASE, MEDR, NAVR, NSSL, NSL, FUNL, GAME, SECGAME}; + +enum custom_keycodes { +  CMD_TAB = SAFE_RANGE, +}; + +//cmd tab + +bool is_cmd_tab_active = false; +uint16_t cmd_tab_timer = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +  switch (keycode) { +    case CMD_TAB: +      if (record->event.pressed) { +        if (!is_cmd_tab_active) { +          is_cmd_tab_active = true; +          register_code(KC_LCTL); +        } +        cmd_tab_timer = timer_read(); +        register_code(KC_TAB); +      } else { +        unregister_code(KC_TAB); +      } +      break; +  } +  return true; +} + +void matrix_scan_user(void) { +  if (is_cmd_tab_active) { +    if (timer_elapsed(cmd_tab_timer) > 500) { +      unregister_code(KC_LCTL); +      is_cmd_tab_active = false; +    } +  } +} + +//layer led colors + +void rgb_matrix_indicators_user(void) { + +//game indicators + +if(IS_LAYER_ON(GAME)) { +  rgb_matrix_set_color(11, 0, 40, 50); +} + +if(IS_LAYER_ON(SECGAME)) { +  rgb_matrix_set_color(11, 50, 0, 0); +} + +//layer indicators + +if(IS_LAYER_ON(NAVR)) { +  rgb_matrix_set_color(40, 0, 40, 50); + +  rgb_matrix_set_color(19, 0, 40, 50); +  rgb_matrix_set_color(20, 0, 40, 50); +  rgb_matrix_set_color(21, 0, 40, 50); +  rgb_matrix_set_color(22, 0, 40, 50); +} + +if(IS_LAYER_ON(MEDR)) { +  rgb_matrix_set_color(39, 50, 10, 20); + +  rgb_matrix_set_color(19, 50, 10, 20); + +  rgb_matrix_set_color(22, 50, 10, 20); + +  rgb_matrix_set_color(42, 50, 10, 20); +} + +if(IS_LAYER_ON(FUNL)) { +  rgb_matrix_set_color(43, 50, 0, 0); + +  rgb_matrix_set_color(1, 50, 0, 0); +  rgb_matrix_set_color(2, 50, 0, 0); +  rgb_matrix_set_color(3, 50, 0, 0); +  rgb_matrix_set_color(4, 50, 0, 0); + +  rgb_matrix_set_color(13, 50, 0, 0); +  rgb_matrix_set_color(14, 50, 0, 0); +  rgb_matrix_set_color(15, 50, 0, 0); +  rgb_matrix_set_color(16, 50, 0, 0); + +  rgb_matrix_set_color(25, 50, 0, 0); +  rgb_matrix_set_color(26, 50, 0, 0); +  rgb_matrix_set_color(27, 50, 0, 0); +  rgb_matrix_set_color(28, 50, 0, 0); +} + +if(IS_LAYER_ON(NSL)) { +  rgb_matrix_set_color(42, 10, 0, 50); + +  rgb_matrix_set_color(2, 10, 0, 50); +  rgb_matrix_set_color(3, 10, 0, 50); +  rgb_matrix_set_color(4, 10, 0, 50); + +  rgb_matrix_set_color(14, 10, 0, 50); +  rgb_matrix_set_color(15, 10, 0, 50); +  rgb_matrix_set_color(16, 10, 0, 50); + +  rgb_matrix_set_color(26, 10, 0, 50); +  rgb_matrix_set_color(27, 10, 0, 50); +  rgb_matrix_set_color(28, 10, 0, 50); + +  rgb_matrix_set_color(38, 10, 0, 50); +  rgb_matrix_set_color(39, 10, 0, 50); +  rgb_matrix_set_color(40, 10, 0, 50); +} + +if(IS_LAYER_ON(NSSL)) { +  rgb_matrix_set_color(41, 0, 50, 1.9); + +  rgb_matrix_set_color(1, 0, 50, 1.9); +  rgb_matrix_set_color(2, 0, 50, 1.9); +  rgb_matrix_set_color(3, 0, 50, 1.9); +  rgb_matrix_set_color(4, 0, 50, 1.9); +  rgb_matrix_set_color(5, 0, 50, 1.9); + +  rgb_matrix_set_color(13, 0, 50, 1.9); +  rgb_matrix_set_color(14, 0, 50, 1.9); +  rgb_matrix_set_color(15, 0, 50, 1.9); +  rgb_matrix_set_color(16, 0, 50, 1.9); +  rgb_matrix_set_color(17, 0, 50, 1.9); + +  rgb_matrix_set_color(25, 0, 50, 1.9); +  rgb_matrix_set_color(26, 0, 50, 1.9); +  rgb_matrix_set_color(27, 0, 50, 1.9); +  rgb_matrix_set_color(28, 0, 50, 1.9); +  rgb_matrix_set_color(29, 0, 50, 1.9); + +} + +//capslock leds + +if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) { +    rgb_matrix_set_color_all(50, 15.6, 0); +  } + +} + +//tap dance declarations +enum { +    TD_MEDIA, TD_SCREEN, +}; + +//tap dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { +    [TD_MEDIA] = ACTION_TAP_DANCE_DOUBLE( KC_MPLY , KC_MNXT ), +    [TD_SCREEN] = ACTION_TAP_DANCE_DOUBLE( (G(S(KC_S))) , S(C(KC_4)) ), +}; + +#define KC_TD(TD_VARIABLE) TD(TD_VARIABLE) + +//-------------------------------------------------------------------------------------------------------- + +//base + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +  [BASE] = LAYOUT_planck_mit( +    KC_LALT,              KC_Q,              KC_W,              KC_E,              KC_R,              KC_T,              KC_Y,              KC_U,              KC_I,              KC_O,              KC_P,              KC_LALT, +    KC_LSFT,              KC_A,              KC_S,              KC_D,              KC_F,              KC_G,              KC_H,              KC_J,              KC_K,              KC_L,              KC_QUOT,           KC_LSFT, +    KC_LCTL,              KC_Z,              KC_X,              KC_C,              KC_V,              KC_B,              KC_N,              KC_M,              KC_COMM,           KC_DOT,            KC_SLSH,           KC_LCTL, +    G(KC_TAB),            KC_TD(TD_SCREEN),  KC_ESC,            LT(MEDR, KC_TAB),  LT(NAVR, KC_SPC),      LT(NSSL, KC_ENT),                 LT(NSL, KC_BSPC),  LT(FUNL, KC_DEL),  KC_LGUI,           KC_TD(TD_MEDIA),     CMD_TAB +  ), + +//layers +  [NAVR] = LAYOUT_planck_mit( +    KC_LALT,              KC_RST,            KC_NO,             KC_NO,              KC_NO,            KC_NO,             C(S(KC_Z)),        C(A(KC_LEFT)),     C(KC_X),           C(KC_C),           C(A(KC_RGHT)),     KC_LALT, +    KC_LSFT,              G(S(C(KC_F1))),    G(S(C(KC_F3))),    G(S(C(KC_F4))),     G(S(C(KC_F2))),   KC_NO,             KC_CLCK,           KC_LEFT,           KC_DOWN,           KC_UP,             KC_RGHT,           KC_LSFT, +    KC_LCTL,              KC_NO,             KC_ALGR,           KC_NO,              G(S(C(KC_F5))),   KC_NO,             KC_INS,            KC_HOME,           KC_PGDN,           KC_PGUP,           KC_END,            KC_LCTL, +    TG(GAME),             KC_NO,             KC_NO,             KC_NO,              KC_NO,                     KC_ENT,                      KC_BSPC,           KC_DEL,            KC_NO,             C(G(KC_LEFT)),     C(G(KC_RIGHT)) +  ), +  [MEDR] = LAYOUT_planck_mit( +    KC_LALT,              KC_RST,            KC_NO,             KC_NO,              KC_NO,            KC_NO,             KC_TOG,            KC_MOD,            KC_HUI,            KC_SAI,            KC_VAI,            KC_LALT, +    KC_LSFT,              KC_NO,             KC_NO,             KC_NO,              KC_NO,            KC_NO,             KC_NO,             KC_MPRV,           KC_VOLD,           KC_VOLU,           KC_MNXT,           KC_LSFT, +    KC_LCTL,              KC_NO,             KC_NO,             KC_NO,              KC_NO,            KC_NO,             KC_NO,             KC_F13,            KC_F14,            KC_F15,            RGB_VAI,           KC_LCTL, +    KC_NO,                KC_NO,             KC_NO,             KC_NO,              KC_NO,                     KC_MSTP,                     KC_MPLY,           KC_MUTE,           KC_NO,             KC_NO,             KC_NO +  ), +  [FUNL] = LAYOUT_planck_mit( +    KC_LALT,              KC_F12,            KC_F7,             KC_F8,              KC_F9,            KC_PSCR,           KC_F15,            KC_NO,             KC_NO,             KC_NO,             KC_RST,            KC_LALT, +    KC_LSFT,              KC_F11,            KC_F4,             KC_F5,              KC_F6,            KC_SLCK,           KC_F14,            KC_NO,             KC_NO,             KC_NO,             KC_NO,             KC_LSFT, +    KC_LCTL,              KC_F10,            KC_F1,             KC_F2,              KC_F3,            KC_PAUS,           KC_F13,            KC_NO,             KC_NO,             KC_NO,             KC_NO,             KC_LCTL, +    KC_NO,                KC_NO,             KC_TAB,            KC_APP,             KC_SPC,                    KC_UNDS,                     KC_NO,             KC_NO,             KC_NO,             KC_NO,             KC_NO +  ), +  [NSL] = LAYOUT_planck_mit( +    KC_LALT,              KC_LPRN,           KC_7,              KC_8,               KC_9,             KC_RPRN,           KC_LBRC,           KC_AMPR,           KC_ASTR,           KC_LCBR,           KC_RBRC,           KC_BSPC, +    KC_LSFT,              KC_COLN,           KC_4,              KC_5,               KC_6,             KC_EQL,            KC_LCBR,           KC_DLR,            KC_PERC,           KC_CIRC,           KC_RCBR,           KC_LSFT, +    KC_LCTL,              KC_GRV,            KC_1,              KC_2,               KC_3,             KC_PLUS,           KC_TILD,           KC_EXLM,           KC_COMM,           KC_DOT,            KC_SLSH,           KC_LCTL, +    A(S(C(KC_N))),        S(C(KC_5)),        KC_NO,             KC_UNDS,            KC_0,                      KC_MINS,                     KC_NO,             KC_NO,             KC_NO,             KC_NO,             KC_NO +  ), +  [NSSL] = LAYOUT_planck_mit( +    KC_LALT,              KC_LCBR,           KC_AMPR,           KC_ASTR,            KC_LPRN,          KC_RCBR,           KC_NO,             KC_NO,              KC_NO,            KC_NO,             KC_RST,            KC_BSPC, +    KC_LSFT,              KC_SCLN,           KC_DLR,            KC_PERC,            KC_CIRC,          KC_PLUS,           KC_NO,             KC_MS_L,            KC_MS_D,          KC_MS_U,           KC_MS_R,           KC_LSFT, +    KC_LCTL,              KC_TILD,           KC_EXLM,           KC_AT,              KC_HASH,          KC_PIPE,           KC_NO,             KC_WH_L,            KC_WH_D,          KC_WH_U,           KC_WH_R,           KC_LCTL, +    KC_NO,                KC_NO,             KC_UNDS,           KC_GT,              KC_RPRN,                   KC_NO,                       KC_BTN1,            KC_BTN3,          KC_BTN2,           KC_NO,             KC_NO +  ), +  [GAME] = LAYOUT_planck_mit( +    KC_ESC,               KC_Q,              KC_W,              KC_E,               KC_R,             KC_T,              KC_Y,              KC_U,               KC_I,             KC_O,              KC_P,              TG(GAME), +    KC_LALT,              KC_A,              KC_S,              KC_D,               KC_F,             KC_G,              KC_H,              KC_J,               KC_K,             KC_L,              KC_QUOT,           KC_LSFT, +    KC_LSFT,              KC_Z,              KC_X,              KC_C,               KC_V,             KC_B,              KC_N,              KC_M,               KC_COMM,          KC_DOT,            KC_SLSH,           KC_LCTL, +    KC_LCTL,              A(KC_TAB),         MO(SECGAME),       KC_TAB,             KC_SPC,             LT(SECGAME, KC_ENT),                KC_BSPC,            KC_DEL,           KC_MPRV,           KC_MPLY,           KC_MNXT +  ), +  [SECGAME] = LAYOUT_planck_mit( +    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_F1,                KC_F2,             KC_F3,             KC_F4,              KC_F5,            KC_F6,             KC_F7,             KC_F8,              KC_F9,            KC_F10,            KC_F11,            KC_F12, +    KC_LEFT,              KC_DOWN,           KC_UP,             KC_RGHT,            KC_NO,            KC_NO,             KC_NO,             KC_P1,              KC_P2,            KC_P3,             KC_P4,             KC_P5, +    KC_LEFT,              KC_DOWN,           KC_UP,             KC_RGHT,            KC_NO,                     KC_NO,                       KC_P6,              KC_P7,            KC_P8,             KC_P9,             KC_P0 +  ) +}; diff --git a/keyboards/bm40hsrgb/keymaps/signynt/readme.md b/keyboards/bm40hsrgb/keymaps/signynt/readme.md new file mode 100644 index 0000000000..938803c268 --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt/readme.md @@ -0,0 +1,117 @@ +# Signynt's Keymap: 'Sigma-Squared' + +Sigma Squared is an adaptation & modification of the Layout [Miryoku](https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org#miryoku-) by *manna-harbour* + +*manna-harbour* lays out the general principles of the layout as follows: + +- Use layers instead of reaching. +- Use both hands instead of contortions. +- Use the home positions as much as possible. +- Make full use of the thumbs. +- Avoid unnecessary complication. + + + +Sigma Squared modifies on **Miryoku** in the following ways: + +- Added the Mods to the outer most columns to be easily accessed while typing with the pinkies +- Extended the **NUMBER** layer to include symbols on the right side to allow calcualtion to be typed more easily without haveing to move between layers +- Added a **GAME** layer to be used for gaming that emulates a more standard keyboard that most games expect +  - moves *left shift* and *left ctrl* down +  - *esc* moved to top left +  - gives access to a **SECOND GAME** layer that contains an Fn row as well as number and arrow keys right under your left fingers +- Added Shortcuts to the bottom row to reduce the amount of keycombos needed to use commonly needed features +  - Mission Control, Screenshot, Cycling Apps & Windows +- Added LED indicators to display what layer is currently active (only active while RGB is turned on) + + + +### Flashing + +- to directly flash to board: + +  `qmk flash -kb bm40hsrgb -km signynt` + +- to only compile: + +  `qmk compile -kb bm40hsrgb -km signynt` + + + +# Layout + +## BASE + +Tap the layer keys to use the black legends, hold them to activate the corresponding layer. + +The Shortcut keys can be modified to suit your needs, or change them in your OS to match the keys. + +If you are using MacOS I recommend swapping your *Ctrl* and *Cmd* keys in system preferences + +The Music Control key can be pressed once to pause and be pressed twice in rapid succession to skip to the next song.  + +The Screenshot Key takes a screenshot to the clipboard if pressed once, if double tapped it will take a screenshot to be saved to the desktop. + + + +## NAVIGATION + +Provides access to all essential navigation keys, comfortably under your home row. Modifiers remain identical to **BASE** layer to be used for navigating lines and words. + +*Game Layer* key takes you to the **GAME** layer. *(duh)* + +Bottom right keys are used to swap between Virtual Desktops. You might need to modify these to fit your OS. + + + + + +## MEDIA + +Provides access to all basic media keys, emulating the arrow keys on the home row. + +Also gives access to RGB controls. + + + +## NUMBER + +Numbers are arranged in a numpad layout beneath home row, with 0 being positioned under the thumb resting position. Layer includes all most commonly needed symbols to reduce amount of layer switching needed to type longer calculations. + +Top right key changed to *Back Space* so corrections can be made without leaving layer. + + + +## SYMBOL + +Symbols are positioned over respective numbers from the **NUMBER** layer. + +Mouse keys are positioned similarly under the home row corresponding to the arrow keys. + +Also includes *Back Space* key for corrections. + + + +## Fn + +Fn keys are arranged in the same layout as the numbers, with *F10* to *F12* added to the left + + + +## GAME + +Somewhat emulates a regular layout needed for gaming. Top right key LED will indicate that you are on the **GAME** layer, and can be pressed to exit it. Holding one of the *Second Game* keys will give you access to **SECOND GAME** + + + +## SECOND GAME + +Top right key will turn red to indicate you are in the layer + + + + + +# Contact + +If you have any issues or questions you can reach me through Reddit at u/Signynt or on the QMK Discord diff --git a/keyboards/bm40hsrgb/keymaps/signynt/rules.mk b/keyboards/bm40hsrgb/keymaps/signynt/rules.mk new file mode 100644 index 0000000000..29b992b605 --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt/rules.mk @@ -0,0 +1,7 @@ +#rules + +MOUSEKEY_ENABLE = yes # Mouse keys +BOOTMAGIC_ENABLE = full +EXTRAKEY_ENABLE = yes # Audio control and System control +TAP_DANCE_ENABLE = yes +#RGB_MATRIX_ENABLE = no diff --git a/keyboards/bm40hsrgb/keymaps/signynt_2_loud/config.h b/keyboards/bm40hsrgb/keymaps/signynt_2_loud/config.h new file mode 100644 index 0000000000..7cfbf0fde4 --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt_2_loud/config.h @@ -0,0 +1,80 @@ +// qmk flash -kb bm40hsrgb -km signynt_2_loud + +/* Copyright 2021 Vincenzo Mitchell Barroso + * + * 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 RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +#define RGBLIGHT_ANIMATIONS + +//#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +#define RGBLIGHT_LIMIT_VAL 10 + +//bootmagic +#define BOOTMAGIC_KEY_SALT KC_V +#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q + +#ifdef RGB_MATRIX_ENABLE + +#define TAPPING_TERM 200 + +//-------------------------------------------------------------------------------------------------------- + +//disable broken animations +#define DISABLE_RGB_MATRIX_ALPHAS_MODS +#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define DISABLE_RGB_MATRIX_BREATHING +#define DISABLE_RGB_MATRIX_BAND_SAT +#define DISABLE_RGB_MATRIX_BAND_VAL +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define DISABLE_RGB_MATRIX_CYCLE_ALL +#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +//#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +//#define DISABLE_RGB_MATRIX_DUAL_BEACON +#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL +//#define DISABLE_RGB_MATRIX_RAINBOW_BEACON +//#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS +//#define DISABLE_RGB_MATRIX_RAINDROPS +#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // DO NOT ENABLE +//#define DISABLE_RGB_MATRIX_TYPING_HEATMAP +//#define DISABLE_RGB_MATRIX_DIGITAL_RAIN +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +//#define DISABLE_RGB_MATRIX_SPLASH +//#define DISABLE_RGB_MATRIX_MULTISPLASH +//#define DISABLE_RGB_MATRIX_SOLID_SPLASH +//#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#undef RGB_MATRIX_STARTUP_MODE + +#define RGBLIGHT_HUE_STEP 20 + +#endif diff --git a/keyboards/bm40hsrgb/keymaps/signynt_2_loud/keymap.c b/keyboards/bm40hsrgb/keymaps/signynt_2_loud/keymap.c new file mode 100644 index 0000000000..12539fe41c --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt_2_loud/keymap.c @@ -0,0 +1,214 @@ +// qmk flash -kb bm40hsrgb -km signynt_2_loud + +/* Copyright 2021 Vincenzo Mitchell Barroso + * + * 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 + +// non-KC_ keycodes +#define KC_RST RESET +#define KC_TOG RGB_TOG +#define KC_MOD RGB_MOD +#define KC_HUI RGB_HUI +#define KC_SAI RGB_SAI +#define KC_VAI RGB_VAI + +//define layers +enum layers {BASE, MEDR, NAVR, NSSL, NSL, FUNL, GAME, SECGAME}; + +enum custom_keycodes { +  CMD_TAB = SAFE_RANGE, +}; + +//cmd tab + +bool is_cmd_tab_active = false; +uint16_t cmd_tab_timer = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +  switch (keycode) { +    case CMD_TAB: +      if (record->event.pressed) { +        if (!is_cmd_tab_active) { +          is_cmd_tab_active = true; +          register_code(KC_LCTL); +        } +        cmd_tab_timer = timer_read(); +        register_code(KC_TAB); +      } else { +        unregister_code(KC_TAB); +      } +      break; +  } +  return true; +} + +void matrix_scan_user(void) { +  if (is_cmd_tab_active) { +    if (timer_elapsed(cmd_tab_timer) > 500) { +      unregister_code(KC_LCTL); +      is_cmd_tab_active = false; +    } +  } +} + +//layer led colors + +void rgb_matrix_indicators_user(void) { + +  for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { +    if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { +        rgb_matrix_set_color(i, 0, 0, 0); +    } +    if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_KEYLIGHT)) { +        rgb_matrix_set_color(i, 0, 0, 0); +    } +  } + +  //capslock +  if (host_keyboard_led_state().caps_lock) { +    for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { +      if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { +            rgb_matrix_set_color(i, 255, 255, 255); +      } +    } +  } + +  //nav layer +  if (IS_LAYER_ON(NAVR)) { +    for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { +      if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { +            rgb_matrix_set_color(i, 0, 204, 255); +      } +    } +  } + +  //funl layer +  if (IS_LAYER_ON(FUNL)) { +    for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { +      if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { +            rgb_matrix_set_color(i, 255, 0, 0); +      } +    } +  } + +  //nsl layer +  if (IS_LAYER_ON(NSL)) { +    for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { +      if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { +            rgb_matrix_set_color(i, 51, 0, 255); +      } +    } +  } + +  //nssl layer +  if (IS_LAYER_ON(NSSL)) { +    for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { +      if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { +            rgb_matrix_set_color(i, 0, 255, 0); +      } +    } +  } + +  //game layer +  if (IS_LAYER_ON(GAME)) { +    for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { +      if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { +            rgb_matrix_set_color(i, 0, 204, 255); +      } +    } +  } + +  //secgame layer +  if (IS_LAYER_ON(SECGAME)) { +    for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { +      if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { +            rgb_matrix_set_color(i, 255, 0, 0); +      } +    } +  } + +} + +//tap dance declarations +enum { +    TD_MEDIA, TD_SCREEN, +}; + +//tap dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { +    [TD_MEDIA] = ACTION_TAP_DANCE_DOUBLE( KC_MPLY , KC_MNXT ), +    [TD_SCREEN] = ACTION_TAP_DANCE_DOUBLE( (G(S(KC_S))) , S(C(KC_4)) ), +}; + +#define KC_TD(TD_VARIABLE) TD(TD_VARIABLE) + +//-------------------------------------------------------------------------------------------------------- + +//base + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +  [BASE] = LAYOUT_planck_mit( +    KC_LALT,              KC_Q,              KC_W,              KC_E,              KC_R,              KC_T,              KC_Y,              KC_U,              KC_I,              KC_O,              KC_P,              KC_LALT, +    KC_LSFT,              KC_A,              KC_S,              KC_D,              KC_F,              KC_G,              KC_H,              KC_J,              KC_K,              KC_L,              KC_QUOT,           KC_LSFT, +    KC_LCTL,              KC_Z,              KC_X,              KC_C,              KC_V,              KC_B,              KC_N,              KC_M,              KC_COMM,           KC_DOT,            KC_SLSH,           KC_LCTL, +    G(KC_TAB),            KC_TD(TD_SCREEN),  KC_ESC,            LT(MEDR, KC_TAB),  LT(NAVR, KC_SPC),      LT(NSSL, KC_ENT),                 LT(NSL, KC_BSPC),  LT(FUNL, KC_DEL),  KC_LGUI,           KC_TD(TD_MEDIA),     CMD_TAB +  ), + +//layers +  [NAVR] = LAYOUT_planck_mit( +    KC_LALT,              KC_RST,            KC_NO,             KC_NO,              KC_NO,            KC_NO,             C(S(KC_Z)),        C(A(KC_LEFT)),     C(KC_X),           C(KC_C),           C(A(KC_RGHT)),     KC_LALT, +    KC_LSFT,              G(S(C(KC_F1))),    G(S(C(KC_F3))),    G(S(C(KC_F4))),     G(S(C(KC_F2))),   KC_NO,             KC_CLCK,           KC_LEFT,           KC_DOWN,           KC_UP,             KC_RGHT,           KC_LSFT, +    KC_LCTL,              KC_NO,             KC_ALGR,           KC_NO,              G(S(C(KC_F5))),   KC_NO,             KC_INS,            KC_HOME,           KC_PGDN,           KC_PGUP,           KC_END,            KC_LCTL, +    TG(GAME),             KC_NO,             KC_NO,             KC_NO,              KC_NO,                     KC_ENT,                      KC_BSPC,           KC_DEL,            KC_NO,             C(G(KC_LEFT)),     C(G(KC_RIGHT)) +  ), +  [MEDR] = LAYOUT_planck_mit( +    KC_LALT,              KC_RST,            KC_NO,             KC_NO,              KC_NO,            KC_NO,             KC_TOG,            KC_MOD,            KC_HUI,            KC_SAI,            KC_VAI,            KC_LALT, +    KC_LSFT,              KC_NO,             KC_NO,             KC_NO,              KC_NO,            KC_NO,             KC_NO,             KC_MPRV,           KC_VOLD,           KC_VOLU,           KC_MNXT,           KC_LSFT, +    KC_LCTL,              KC_NO,             KC_NO,             KC_NO,              KC_NO,            KC_NO,             KC_NO,             KC_F13,            KC_F14,            KC_F15,            RGB_VAI,           KC_LCTL, +    KC_NO,                KC_NO,             KC_NO,             KC_NO,              KC_NO,                     KC_MSTP,                     KC_MPLY,           KC_MUTE,           KC_NO,             KC_NO,             KC_NO +  ), +  [FUNL] = LAYOUT_planck_mit( +    KC_LALT,              KC_F12,            KC_F7,             KC_F8,              KC_F9,            KC_PSCR,           KC_F15,            KC_NO,             KC_NO,             KC_NO,             KC_RST,            KC_LALT, +    KC_LSFT,              KC_F11,            KC_F4,             KC_F5,              KC_F6,            KC_SLCK,           KC_F14,            KC_NO,             KC_NO,             KC_NO,             KC_NO,             KC_LSFT, +    KC_LCTL,              KC_F10,            KC_F1,             KC_F2,              KC_F3,            KC_PAUS,           KC_F13,            KC_NO,             KC_NO,             KC_NO,             KC_NO,             KC_LCTL, +    KC_NO,                KC_NO,             KC_TAB,            KC_APP,             KC_SPC,                    KC_UNDS,                     KC_NO,             KC_NO,             KC_NO,             KC_NO,             KC_NO +  ), +  [NSL] = LAYOUT_planck_mit( +    KC_LALT,              KC_LPRN,           KC_7,              KC_8,               KC_9,             KC_RPRN,           KC_LBRC,           KC_AMPR,           KC_ASTR,           KC_LCBR,           KC_RBRC,           KC_BSPC, +    KC_LSFT,              KC_COLN,           KC_4,              KC_5,               KC_6,             KC_EQL,            KC_LCBR,           KC_DLR,            KC_PERC,           KC_CIRC,           KC_RCBR,           KC_LSFT, +    KC_LCTL,              KC_GRV,            KC_1,              KC_2,               KC_3,             KC_PLUS,           KC_TILD,           KC_EXLM,           KC_COMM,           KC_DOT,            KC_SLSH,           KC_LCTL, +    A(S(C(KC_N))),        S(C(KC_5)),        KC_NO,             KC_UNDS,            KC_0,                      KC_MINS,                     KC_NO,             KC_NO,             KC_NO,             KC_NO,             KC_NO +  ), +  [NSSL] = LAYOUT_planck_mit( +    KC_LALT,              KC_LCBR,           KC_AMPR,           KC_ASTR,            KC_LPRN,          KC_RCBR,           KC_NO,             KC_NO,              KC_NO,            KC_NO,             KC_RST,            KC_BSPC, +    KC_LSFT,              KC_SCLN,           KC_DLR,            KC_PERC,            KC_CIRC,          KC_PLUS,           KC_NO,             KC_MS_L,            KC_MS_D,          KC_MS_U,           KC_MS_R,           KC_LSFT, +    KC_LCTL,              KC_TILD,           KC_EXLM,           KC_AT,              KC_HASH,          KC_PIPE,           KC_NO,             KC_WH_L,            KC_WH_D,          KC_WH_U,           KC_WH_R,           KC_LCTL, +    KC_NO,                KC_NO,             KC_UNDS,           KC_GT,              KC_RPRN,                   KC_NO,                       KC_BTN1,            KC_BTN3,          KC_BTN2,           KC_NO,             KC_NO +  ), +  [GAME] = LAYOUT_planck_mit( +    KC_ESC,               KC_Q,              KC_W,              KC_E,               KC_R,             KC_T,              KC_Y,              KC_U,               KC_I,             KC_O,              KC_P,              TG(GAME), +    KC_LALT,              KC_A,              KC_S,              KC_D,               KC_F,             KC_G,              KC_H,              KC_J,               KC_K,             KC_L,              KC_QUOT,           KC_LSFT, +    KC_LSFT,              KC_Z,              KC_X,              KC_C,               KC_V,             KC_B,              KC_N,              KC_M,               KC_COMM,          KC_DOT,            KC_SLSH,           KC_LCTL, +    KC_LCTL,              A(KC_TAB),         MO(SECGAME),       KC_TAB,             KC_SPC,             LT(SECGAME, KC_ENT),                KC_BSPC,            KC_DEL,           KC_MPRV,           KC_MPLY,           KC_MNXT +  ), +  [SECGAME] = LAYOUT_planck_mit( +    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_F1,                KC_F2,             KC_F3,             KC_F4,              KC_F5,            KC_F6,             KC_F7,             KC_F8,              KC_F9,            KC_F10,            KC_F11,            KC_F12, +    KC_LEFT,              KC_DOWN,           KC_UP,             KC_RGHT,            KC_NO,            KC_NO,             KC_NO,             KC_P1,              KC_P2,            KC_P3,             KC_P4,             KC_P5, +    KC_LEFT,              KC_DOWN,           KC_UP,             KC_RGHT,            KC_NO,                     KC_NO,                       KC_P6,              KC_P7,            KC_P8,             KC_P9,             KC_P0 +  ) +}; diff --git a/keyboards/bm40hsrgb/keymaps/signynt_2_loud/readme.md b/keyboards/bm40hsrgb/keymaps/signynt_2_loud/readme.md new file mode 100644 index 0000000000..938803c268 --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt_2_loud/readme.md @@ -0,0 +1,117 @@ +# Signynt's Keymap: 'Sigma-Squared' + +Sigma Squared is an adaptation & modification of the Layout [Miryoku](https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org#miryoku-) by *manna-harbour* + +*manna-harbour* lays out the general principles of the layout as follows: + +- Use layers instead of reaching. +- Use both hands instead of contortions. +- Use the home positions as much as possible. +- Make full use of the thumbs. +- Avoid unnecessary complication. + + + +Sigma Squared modifies on **Miryoku** in the following ways: + +- Added the Mods to the outer most columns to be easily accessed while typing with the pinkies +- Extended the **NUMBER** layer to include symbols on the right side to allow calcualtion to be typed more easily without haveing to move between layers +- Added a **GAME** layer to be used for gaming that emulates a more standard keyboard that most games expect +  - moves *left shift* and *left ctrl* down +  - *esc* moved to top left +  - gives access to a **SECOND GAME** layer that contains an Fn row as well as number and arrow keys right under your left fingers +- Added Shortcuts to the bottom row to reduce the amount of keycombos needed to use commonly needed features +  - Mission Control, Screenshot, Cycling Apps & Windows +- Added LED indicators to display what layer is currently active (only active while RGB is turned on) + + + +### Flashing + +- to directly flash to board: + +  `qmk flash -kb bm40hsrgb -km signynt` + +- to only compile: + +  `qmk compile -kb bm40hsrgb -km signynt` + + + +# Layout + +## BASE + +Tap the layer keys to use the black legends, hold them to activate the corresponding layer. + +The Shortcut keys can be modified to suit your needs, or change them in your OS to match the keys. + +If you are using MacOS I recommend swapping your *Ctrl* and *Cmd* keys in system preferences + +The Music Control key can be pressed once to pause and be pressed twice in rapid succession to skip to the next song.  + +The Screenshot Key takes a screenshot to the clipboard if pressed once, if double tapped it will take a screenshot to be saved to the desktop. + + + +## NAVIGATION + +Provides access to all essential navigation keys, comfortably under your home row. Modifiers remain identical to **BASE** layer to be used for navigating lines and words. + +*Game Layer* key takes you to the **GAME** layer. *(duh)* + +Bottom right keys are used to swap between Virtual Desktops. You might need to modify these to fit your OS. + + + + + +## MEDIA + +Provides access to all basic media keys, emulating the arrow keys on the home row. + +Also gives access to RGB controls. + + + +## NUMBER + +Numbers are arranged in a numpad layout beneath home row, with 0 being positioned under the thumb resting position. Layer includes all most commonly needed symbols to reduce amount of layer switching needed to type longer calculations. + +Top right key changed to *Back Space* so corrections can be made without leaving layer. + + + +## SYMBOL + +Symbols are positioned over respective numbers from the **NUMBER** layer. + +Mouse keys are positioned similarly under the home row corresponding to the arrow keys. + +Also includes *Back Space* key for corrections. + + + +## Fn + +Fn keys are arranged in the same layout as the numbers, with *F10* to *F12* added to the left + + + +## GAME + +Somewhat emulates a regular layout needed for gaming. Top right key LED will indicate that you are on the **GAME** layer, and can be pressed to exit it. Holding one of the *Second Game* keys will give you access to **SECOND GAME** + + + +## SECOND GAME + +Top right key will turn red to indicate you are in the layer + + + + + +# Contact + +If you have any issues or questions you can reach me through Reddit at u/Signynt or on the QMK Discord diff --git a/keyboards/bm40hsrgb/keymaps/signynt_2_loud/rules.mk b/keyboards/bm40hsrgb/keymaps/signynt_2_loud/rules.mk new file mode 100644 index 0000000000..29b992b605 --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt_2_loud/rules.mk @@ -0,0 +1,7 @@ +#rules + +MOUSEKEY_ENABLE = yes # Mouse keys +BOOTMAGIC_ENABLE = full +EXTRAKEY_ENABLE = yes # Audio control and System control +TAP_DANCE_ENABLE = yes +#RGB_MATRIX_ENABLE = no diff --git a/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/config.h b/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/config.h new file mode 100644 index 0000000000..4dd37189a9 --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/config.h @@ -0,0 +1,80 @@ +// qmk flash -kb bm40hsrgb -km signynt_2_quiet + +/* Copyright 2021 Vincenzo Mitchell Barroso + * + * 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 RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +#define RGBLIGHT_ANIMATIONS + +//#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +#define RGBLIGHT_LIMIT_VAL 10 + +//bootmagic +#define BOOTMAGIC_KEY_SALT KC_V +#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q + +#ifdef RGB_MATRIX_ENABLE + +#define TAPPING_TERM 200 + +//-------------------------------------------------------------------------------------------------------- + +//disable broken animations +#define DISABLE_RGB_MATRIX_ALPHAS_MODS +#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define DISABLE_RGB_MATRIX_BREATHING +#define DISABLE_RGB_MATRIX_BAND_SAT +#define DISABLE_RGB_MATRIX_BAND_VAL +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define DISABLE_RGB_MATRIX_CYCLE_ALL +#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +//#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +//#define DISABLE_RGB_MATRIX_DUAL_BEACON +#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL +//#define DISABLE_RGB_MATRIX_RAINBOW_BEACON +//#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS +//#define DISABLE_RGB_MATRIX_RAINDROPS +#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // DO NOT ENABLE +//#define DISABLE_RGB_MATRIX_TYPING_HEATMAP +//#define DISABLE_RGB_MATRIX_DIGITAL_RAIN +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +//#define DISABLE_RGB_MATRIX_SPLASH +//#define DISABLE_RGB_MATRIX_MULTISPLASH +//#define DISABLE_RGB_MATRIX_SOLID_SPLASH +//#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#undef RGB_MATRIX_STARTUP_MODE + +#define RGBLIGHT_HUE_STEP 20 + +#endif diff --git a/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c b/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c new file mode 100644 index 0000000000..999e6b18af --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c @@ -0,0 +1,178 @@ +// qmk flash -kb bm40hsrgb -km signynt_2_quiet + +/* Copyright 2021 Vincenzo Mitchell Barroso + * + * 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 + +// non-KC_ keycodes +#define KC_RST RESET +#define KC_TOG RGB_TOG +#define KC_MOD RGB_MOD +#define KC_HUI RGB_HUI +#define KC_SAI RGB_SAI +#define KC_VAI RGB_VAI + +//define layers +enum layers {BASE, MEDR, NAVR, NSSL, NSL, FUNL, GAME, SECGAME}; + +enum custom_keycodes { +  CMD_TAB = SAFE_RANGE, +}; + +//cmd tab + +bool is_cmd_tab_active = false; +uint16_t cmd_tab_timer = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +  switch (keycode) { +    case CMD_TAB: +      if (record->event.pressed) { +        if (!is_cmd_tab_active) { +          is_cmd_tab_active = true; +          register_code(KC_LCTL); +        } +        cmd_tab_timer = timer_read(); +        register_code(KC_TAB); +      } else { +        unregister_code(KC_TAB); +      } +      break; +  } +  return true; +} + +void matrix_scan_user(void) { +  if (is_cmd_tab_active) { +    if (timer_elapsed(cmd_tab_timer) > 500) { +      unregister_code(KC_LCTL); +      is_cmd_tab_active = false; +    } +  } +} + +//layer led colors + +void rgb_matrix_indicators_user(void) { + +  for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { +    if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { +        rgb_matrix_set_color(i, 0, 0, 0); +    } +    if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_KEYLIGHT)) { +        rgb_matrix_set_color(i, 0, 0, 0); +    } +  } + +  //capslock +  if (host_keyboard_led_state().caps_lock) { +    for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { +      if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { +            rgb_matrix_set_color(i, 255, 255, 255); +      } +    } +  } + +  //game layer +  if (IS_LAYER_ON(GAME)) { +    for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { +      if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { +            rgb_matrix_set_color(i, 0, 204, 255); +      } +    } +  } + +  //secgame layer +  if (IS_LAYER_ON(SECGAME)) { +    for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { +      if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { +            rgb_matrix_set_color(i, 255, 0, 0); +      } +    } +  } + +} + +//tap dance declarations +enum { +    TD_MEDIA, TD_SCREEN, +}; + +//tap dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { +    [TD_MEDIA] = ACTION_TAP_DANCE_DOUBLE( KC_MPLY , KC_MNXT ), +    [TD_SCREEN] = ACTION_TAP_DANCE_DOUBLE( (G(S(KC_S))) , S(C(KC_4)) ), +}; + +#define KC_TD(TD_VARIABLE) TD(TD_VARIABLE) + +//-------------------------------------------------------------------------------------------------------- + +//base + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +  [BASE] = LAYOUT_planck_mit( +    KC_LALT,              KC_Q,              KC_W,              KC_E,              KC_R,              KC_T,              KC_Y,              KC_U,              KC_I,              KC_O,              KC_P,              KC_LALT, +    KC_LSFT,              KC_A,              KC_S,              KC_D,              KC_F,              KC_G,              KC_H,              KC_J,              KC_K,              KC_L,              KC_QUOT,           KC_LSFT, +    KC_LCTL,              KC_Z,              KC_X,              KC_C,              KC_V,              KC_B,              KC_N,              KC_M,              KC_COMM,           KC_DOT,            KC_SLSH,           KC_LCTL, +    G(KC_TAB),            KC_TD(TD_SCREEN),  KC_ESC,            LT(MEDR, KC_TAB),  LT(NAVR, KC_SPC),      LT(NSSL, KC_ENT),                 LT(NSL, KC_BSPC),  LT(FUNL, KC_DEL),  KC_LGUI,           KC_TD(TD_MEDIA),    CMD_TAB +  ), + +//layers +  [NAVR] = LAYOUT_planck_mit( +    KC_LALT,              KC_RST,            KC_NO,             KC_NO,              KC_NO,            KC_NO,             C(S(KC_Z)),        C(A(KC_LEFT)),     C(KC_X),           C(KC_C),           C(A(KC_RGHT)),     KC_LALT, +    KC_LSFT,              G(S(C(KC_F1))),    G(S(C(KC_F3))),    G(S(C(KC_F4))),     G(S(C(KC_F2))),   KC_NO,             KC_CLCK,           KC_LEFT,           KC_DOWN,           KC_UP,             KC_RGHT,           KC_LSFT, +    KC_LCTL,              KC_NO,             KC_ALGR,           KC_NO,              G(S(C(KC_F5))),   KC_NO,             KC_INS,            KC_HOME,           KC_PGDN,           KC_PGUP,           KC_END,            KC_LCTL, +    TG(GAME),             KC_NO,             KC_NO,             KC_NO,              KC_NO,                     KC_ENT,                      KC_BSPC,           KC_DEL,            KC_NO,             C(G(KC_LEFT)),     C(G(KC_RIGHT)) +  ), +  [MEDR] = LAYOUT_planck_mit( +    KC_LALT,              KC_RST,            KC_NO,             KC_NO,              KC_NO,            KC_NO,             KC_TOG,            KC_MOD,            KC_HUI,            KC_SAI,            KC_VAI,            KC_LALT, +    KC_LSFT,              KC_NO,             KC_NO,             KC_NO,              KC_NO,            KC_NO,             KC_NO,             KC_MPRV,           KC_VOLD,           KC_VOLU,           KC_MNXT,           KC_LSFT, +    KC_LCTL,              KC_NO,             KC_NO,             KC_NO,              KC_NO,            KC_NO,             KC_NO,             KC_F13,            KC_F14,            KC_F15,            RGB_VAI,           KC_LCTL, +    KC_NO,                KC_NO,             KC_NO,             KC_NO,              KC_NO,                     KC_MSTP,                     KC_MPLY,           KC_MUTE,           KC_NO,             KC_NO,             KC_NO +  ), +  [FUNL] = LAYOUT_planck_mit( +    KC_LALT,              KC_F12,            KC_F7,             KC_F8,              KC_F9,            KC_PSCR,           KC_F15,            KC_NO,             KC_NO,             KC_NO,             KC_RST,            KC_LALT, +    KC_LSFT,              KC_F11,            KC_F4,             KC_F5,              KC_F6,            KC_SLCK,           KC_F14,            KC_NO,             KC_NO,             KC_NO,             KC_NO,             KC_LSFT, +    KC_LCTL,              KC_F10,            KC_F1,             KC_F2,              KC_F3,            KC_PAUS,           KC_F13,            KC_NO,             KC_NO,             KC_NO,             KC_NO,             KC_LCTL, +    KC_NO,                KC_NO,             KC_TAB,            KC_APP,             KC_SPC,                    KC_UNDS,                     KC_NO,             KC_NO,             KC_NO,             KC_NO,             KC_NO +  ), +  [NSL] = LAYOUT_planck_mit( +    KC_LALT,              KC_LPRN,           KC_7,              KC_8,               KC_9,             KC_RPRN,           KC_LBRC,           KC_AMPR,           KC_ASTR,           KC_LCBR,           KC_RBRC,           KC_BSPC, +    KC_LSFT,              KC_COLN,           KC_4,              KC_5,               KC_6,             KC_EQL,            KC_LCBR,           KC_DLR,            KC_PERC,           KC_CIRC,           KC_RCBR,           KC_LSFT, +    KC_LCTL,              KC_GRV,            KC_1,              KC_2,               KC_3,             KC_PLUS,           KC_TILD,           KC_EXLM,           KC_COMM,           KC_DOT,            KC_SLSH,           KC_LCTL, +    A(S(C(KC_N))),        S(C(KC_5)),        KC_NO,             KC_UNDS,            KC_0,                      KC_MINS,                     KC_NO,             KC_NO,             KC_NO,             KC_NO,             KC_NO +  ), +  [NSSL] = LAYOUT_planck_mit( +    KC_LALT,              KC_LCBR,           KC_AMPR,           KC_ASTR,            KC_LPRN,          KC_RCBR,           KC_NO,             KC_NO,              KC_NO,            KC_NO,             KC_RST,            KC_BSPC, +    KC_LSFT,              KC_SCLN,           KC_DLR,            KC_PERC,            KC_CIRC,          KC_PLUS,           KC_NO,             KC_MS_L,            KC_MS_D,          KC_MS_U,           KC_MS_R,           KC_LSFT, +    KC_LCTL,              KC_TILD,           KC_EXLM,           KC_AT,              KC_HASH,          KC_PIPE,           KC_NO,             KC_WH_L,            KC_WH_D,          KC_WH_U,           KC_WH_R,           KC_LCTL, +    KC_NO,                KC_NO,             KC_UNDS,           KC_GT,              KC_RPRN,                   KC_NO,                       KC_BTN1,            KC_BTN3,          KC_BTN2,           KC_NO,             KC_NO +  ), +  [GAME] = LAYOUT_planck_mit( +    KC_ESC,               KC_Q,              KC_W,              KC_E,               KC_R,             KC_T,              KC_Y,              KC_U,               KC_I,             KC_O,              KC_P,              TG(GAME), +    KC_LALT,              KC_A,              KC_S,              KC_D,               KC_F,             KC_G,              KC_H,              KC_J,               KC_K,             KC_L,              KC_QUOT,           KC_LSFT, +    KC_LSFT,              KC_Z,              KC_X,              KC_C,               KC_V,             KC_B,              KC_N,              KC_M,               KC_COMM,          KC_DOT,            KC_SLSH,           KC_LCTL, +    KC_LCTL,              A(KC_TAB),         MO(SECGAME),       KC_TAB,             KC_SPC,             LT(SECGAME, KC_ENT),                KC_BSPC,            KC_DEL,           KC_MPRV,           KC_MPLY,           KC_MNXT +  ), +  [SECGAME] = LAYOUT_planck_mit( +    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_F1,                KC_F2,             KC_F3,             KC_F4,              KC_F5,            KC_F6,             KC_F7,             KC_F8,              KC_F9,            KC_F10,            KC_F11,            KC_F12, +    KC_LEFT,              KC_DOWN,           KC_UP,             KC_RGHT,            KC_NO,            KC_NO,             KC_NO,             KC_P1,              KC_P2,            KC_P3,             KC_P4,             KC_P5, +    KC_LEFT,              KC_DOWN,           KC_UP,             KC_RGHT,            KC_NO,                     KC_NO,                       KC_P6,              KC_P7,            KC_P8,             KC_P9,             KC_P0 +  ) +}; diff --git a/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/readme.md b/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/readme.md new file mode 100644 index 0000000000..938803c268 --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/readme.md @@ -0,0 +1,117 @@ +# Signynt's Keymap: 'Sigma-Squared' + +Sigma Squared is an adaptation & modification of the Layout [Miryoku](https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org#miryoku-) by *manna-harbour* + +*manna-harbour* lays out the general principles of the layout as follows: + +- Use layers instead of reaching. +- Use both hands instead of contortions. +- Use the home positions as much as possible. +- Make full use of the thumbs. +- Avoid unnecessary complication. + + + +Sigma Squared modifies on **Miryoku** in the following ways: + +- Added the Mods to the outer most columns to be easily accessed while typing with the pinkies +- Extended the **NUMBER** layer to include symbols on the right side to allow calcualtion to be typed more easily without haveing to move between layers +- Added a **GAME** layer to be used for gaming that emulates a more standard keyboard that most games expect +  - moves *left shift* and *left ctrl* down +  - *esc* moved to top left +  - gives access to a **SECOND GAME** layer that contains an Fn row as well as number and arrow keys right under your left fingers +- Added Shortcuts to the bottom row to reduce the amount of keycombos needed to use commonly needed features +  - Mission Control, Screenshot, Cycling Apps & Windows +- Added LED indicators to display what layer is currently active (only active while RGB is turned on) + + + +### Flashing + +- to directly flash to board: + +  `qmk flash -kb bm40hsrgb -km signynt` + +- to only compile: + +  `qmk compile -kb bm40hsrgb -km signynt` + + + +# Layout + +## BASE + +Tap the layer keys to use the black legends, hold them to activate the corresponding layer. + +The Shortcut keys can be modified to suit your needs, or change them in your OS to match the keys. + +If you are using MacOS I recommend swapping your *Ctrl* and *Cmd* keys in system preferences + +The Music Control key can be pressed once to pause and be pressed twice in rapid succession to skip to the next song.  + +The Screenshot Key takes a screenshot to the clipboard if pressed once, if double tapped it will take a screenshot to be saved to the desktop. + + + +## NAVIGATION + +Provides access to all essential navigation keys, comfortably under your home row. Modifiers remain identical to **BASE** layer to be used for navigating lines and words. + +*Game Layer* key takes you to the **GAME** layer. *(duh)* + +Bottom right keys are used to swap between Virtual Desktops. You might need to modify these to fit your OS. + + + + + +## MEDIA + +Provides access to all basic media keys, emulating the arrow keys on the home row. + +Also gives access to RGB controls. + + + +## NUMBER + +Numbers are arranged in a numpad layout beneath home row, with 0 being positioned under the thumb resting position. Layer includes all most commonly needed symbols to reduce amount of layer switching needed to type longer calculations. + +Top right key changed to *Back Space* so corrections can be made without leaving layer. + + + +## SYMBOL + +Symbols are positioned over respective numbers from the **NUMBER** layer. + +Mouse keys are positioned similarly under the home row corresponding to the arrow keys. + +Also includes *Back Space* key for corrections. + + + +## Fn + +Fn keys are arranged in the same layout as the numbers, with *F10* to *F12* added to the left + + + +## GAME + +Somewhat emulates a regular layout needed for gaming. Top right key LED will indicate that you are on the **GAME** layer, and can be pressed to exit it. Holding one of the *Second Game* keys will give you access to **SECOND GAME** + + + +## SECOND GAME + +Top right key will turn red to indicate you are in the layer + + + + + +# Contact + +If you have any issues or questions you can reach me through Reddit at u/Signynt or on the QMK Discord diff --git a/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk b/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk new file mode 100644 index 0000000000..29b992b605 --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk @@ -0,0 +1,7 @@ +#rules + +MOUSEKEY_ENABLE = yes # Mouse keys +BOOTMAGIC_ENABLE = full +EXTRAKEY_ENABLE = yes # Audio control and System control +TAP_DANCE_ENABLE = yes +#RGB_MATRIX_ENABLE = no | 
