New layer added to giabalanai keyboard (#20118)

This commit is contained in:
3araht 2023-04-03 14:12:11 +09:00 committed by GitHub
parent 2d7240f730
commit fb6557acf1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 183 additions and 70 deletions

View File

@ -1,5 +1,5 @@
/* /*
Copyright 2020 3araht Copyright 2023 3araht
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -36,16 +36,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL */ /* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW #define DIODE_DIRECTION COL2ROW
#define SELECT_SOFT_SERIAL_SPEED 1
/*Sets the protocol speed when using serial communication*/
//Speeds:
//0: about 189kbps (Experimental only)
//1: about 137kbps (default)
//2: about 75kbps
//3: about 39kbps
//4: about 26kbps
//5: about 20kbps
// Right side has to be the master since 1, LED data is output from right side, and 2, Audio pin is prepared on right side as a reserve. // Right side has to be the master since 1, LED data is output from right side, and 2, Audio pin is prepared on right side as a reserve.
#define MASTER_RIGHT #define MASTER_RIGHT
@ -227,3 +217,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define NO_ACTION_TAPPING // #define NO_ACTION_TAPPING
// NO_ACTION_ONESHOT -388 bytes // NO_ACTION_ONESHOT -388 bytes
#define NO_ACTION_ONESHOT #define NO_ACTION_ONESHOT
/*
* Encoder options
*/
#ifdef ENCODER_ENABLE
# define ENCODER_RESOLUTIONS_RIGHT { 4 }
#endif // ENCODER_ENABLE

View File

@ -8,10 +8,22 @@
"pid": "0xF4B0", "pid": "0xF4B0",
"device_version": "0.0.1" "device_version": "0.0.1"
}, },
"features": {
"midi": true,
"extrakey": true,
"encoder": true,
"bootmagic": false,
"console": false,
"mousekey": false,
"nkro": false,
"rgblight": false,
"audio": false
},
"encoder": { "encoder": {
"rotary": [] "rotary": []
}, },
"split": { "split": {
"enabled": true,
"soft_serial_pin": "D2", "soft_serial_pin": "D2",
"encoder": { "encoder": {
"right": { "right": {

View File

@ -1,3 +1,19 @@
/*
Copyright 2023 3araht
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 #pragma once
//#define USE_MATRIX_I2C //#define USE_MATRIX_I2C

View File

@ -58,17 +58,18 @@ user_config_t user_config;
// Defines names for use in layer keycodes and the keymap // Defines names for use in layer keycodes and the keymap
enum layer_names { enum layer_names {
_C_SYSTEM_BASE, // MIDI C-system _C_SYSTEM_BASE, // MIDI C-system
_FAKE_B_SYSTEM, // MIDI fake B-system doesn't have correct assignments on top two rows. The bottom 3 rows are B-system. _FAKE_B_SYSTEM, // MIDI fake B-system doesn't have correct assignments on top two rows. The bottom 3 rows are B-system.
_C_SYSTEM_BASS2ROW, // counter bass system _C_SYSTEM_BASS2ROW, // counter bass system
_C_SYSTEM_ENTIRELY, // single notes for both left and right keybaords. _FAKE_B_SYSTEM_BASS2ROW, // MIDI fake B-system doesn't have correct assignments on top two rows. The bottom 3 rows are B-system. Counter bass version.
_C_SYSTEM_FREEBASS, // C-system Free Bass _C_SYSTEM_ENTIRELY, // single notes for both left and right keybaords.
_C_SYSTEM_FREEBASS, // C-system Free Bass
_CHROMATONE, _CHROMATONE,
_CFLIP_BASS2ROW, // 180 degree flipped layout on right side keyboard _CFLIP_BASS2ROW, // 180 degree flipped layout on right side keyboard
_QWERTY, _QWERTY,
_COLEMAK, _COLEMAK,
_ADJUST, // for Fn keys, etc. _ADJUST, // for Fn keys, etc.
_FN // for changing layers, octaves, etc. _FN // for changing layers, octaves, etc.
}; };
// Defines the keycodes used by our macros in process_record_user // Defines the keycodes used by our macros in process_record_user
@ -181,6 +182,7 @@ enum custom_keycodes {
CSYSTEM, // C-SYSTEM layout CSYSTEM, // C-SYSTEM layout
BSYSTEM, // B-SYSTEM layout BSYSTEM, // B-SYSTEM layout
CNTBASC, // CouNTer BASs C-system layout CNTBASC, // CouNTer BASs C-system layout
CNTBASB, // CouNTer BASs B-system layout
CSYSALL, // C-SYStem ALL layout CSYSALL, // C-SYStem ALL layout
CSYSFBS, // C-SYStem Free BaSs CSYSFBS, // C-SYStem Free BaSs
CHRTONE, // CHRomaTONE layout CHRTONE, // CHRomaTONE layout
@ -240,6 +242,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
MI_A2, MI_C3, MI_Eb3, MI_Fs3, MI_A3, MI_C4, MI_Eb4, MI_Fs4, MI_A4, MI_C5, MI_Eb5, MI_Fs5 MI_A2, MI_C3, MI_Eb3, MI_Fs3, MI_A3, MI_C4, MI_Eb4, MI_Fs4, MI_A4, MI_C5, MI_Eb5, MI_Fs5
), ),
/* fake B-system */
[_FAKE_B_SYSTEM_BASS2ROW] = LAYOUT(
MI_CH_Fr, MI_CH_Cr, MI_CH_Gr, MI_CH_Dr, MI_CH_Ar, MI_CH_Er, MI_CH_Br, MI_CH_Fsr, MI_CH_Csr, MI_CH_Gsr, MI_CH_Dsr, MI_CH_Asr,
MI_CH_Dbr, MI_CH_Abr, MI_CH_Ebr, MI_CH_Bbr, MI_CH_Fr, MI_CH_Cr, MI_CH_Gr, MI_CH_Dr, MI_CH_Ar, MI_CH_Er, MI_CH_Br, MI_CH_Fsr,
MI_CH_Db, MI_CH_Ab, MI_CH_Eb, MI_CH_Bb, MI_CH_F, MI_CH_C, MI_CH_G, MI_CH_D, MI_CH_A, MI_CH_E, MI_CH_B, MI_CH_Fs,
MI_CH_Dbm, MI_CH_Abm, MI_CH_Ebm, MI_CH_Bbm, MI_CH_Fm, MI_CH_Cm, MI_CH_Gm, MI_CH_Dm, MI_CH_Am, MI_CH_Em, MI_CH_Bm, MI_CH_Fsm,
MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,
MI_Ab2,
MI_A2, MI_C3, MI_Eb3, MI_Gb3, MI_A3, MI_C4, MI_Eb4, MI_Gb4, MI_A4, MI_C5, MI_Eb5, MI_Gb5, _______,
MI_G2, MI_Bb2, MI_Db3, MI_E3, MI_G3, MI_Bb3, MI_Db4, MI_E4, MI_G4, MI_Bb4, MI_Db5, MI_E5, MI_G5,
MI_Ab2, MI_B2, MI_D3, MI_F3, MI_Ab3, MI_B3, MI_D4, MI_F4, MI_Ab4, MI_B4, MI_D5, MI_F5
),
/* C-system entirely */ /* C-system entirely */
[_C_SYSTEM_ENTIRELY] = LAYOUT( [_C_SYSTEM_ENTIRELY] = LAYOUT(
MI_BNDU, XXXXXXX, XXXXXXX, MI_Db, MI_E, MI_G, MI_Bb, MI_Db1, MI_E1, MI_G1, MI_Bb1, MI_Db2, MI_BNDU, XXXXXXX, XXXXXXX, MI_Db, MI_E, MI_G, MI_Bb, MI_Db1, MI_E1, MI_G1, MI_Bb1, MI_Db2,
@ -340,7 +356,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Fn */ /* Fn */
[_FN] = LAYOUT( [_FN] = LAYOUT(
CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, CNTBASB, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG,
DF_QWER, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_QWER, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
DF_COLE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TGLMICH, DF_COLE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TGLMICH,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
@ -348,24 +364,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
XXXXXXX, XXXXXXX,
MI_OCN2, MI_OCN1, MI_OC0, MI_OC1, MI_OC2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, EE_CLR, _______, MI_OCN2, MI_OCN1, MI_OC0, MI_OC1, MI_OC2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, EE_CLR, _______,
CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, XXXXXXX, XXXXXXX, MI_VELD, MI_VELU, XXXXXXX, RGB_TOG, CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, CNTBASB, XXXXXXX, MI_VELD, MI_VELU, XXXXXXX, RGB_TOG,
XXXXXXX, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TGLUVEL, MELDYAL, MELODYS, MELDYAH XXXXXXX, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TGLUVEL, MELDYAL, MELODYS, MELDYAH
) )
}; };
#if defined(ENCODER_MAP_ENABLE) #if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[_C_SYSTEM_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_C_SYSTEM_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_FAKE_B_SYSTEM] = { ENCODER_CCW_CW(_______, _______) }, [_FAKE_B_SYSTEM] = { ENCODER_CCW_CW(_______, _______) },
[_C_SYSTEM_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) }, [_C_SYSTEM_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) },
[_C_SYSTEM_ENTIRELY] = { ENCODER_CCW_CW(_______, _______) }, [_FAKE_B_SYSTEM_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) },
[_C_SYSTEM_FREEBASS] = { ENCODER_CCW_CW(_______, _______) }, [_C_SYSTEM_ENTIRELY] = { ENCODER_CCW_CW(_______, _______) },
[_CHROMATONE] = { ENCODER_CCW_CW(_______, _______) }, [_C_SYSTEM_FREEBASS] = { ENCODER_CCW_CW(_______, _______) },
[_CFLIP_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) }, [_CHROMATONE] = { ENCODER_CCW_CW(_______, _______) },
[_QWERTY] = { ENCODER_CCW_CW(_______, _______) }, [_CFLIP_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) },
[_COLEMAK] = { ENCODER_CCW_CW(_______, _______) }, [_QWERTY] = { ENCODER_CCW_CW(_______, _______) },
[_ADJUST] = { ENCODER_CCW_CW(_______, _______) }, [_COLEMAK] = { ENCODER_CCW_CW(_______, _______) },
[_FN] = { ENCODER_CCW_CW(_______, _______) }, [_ADJUST] = { ENCODER_CCW_CW(_______, _______) },
[_FN] = { ENCODER_CCW_CW(_______, _______) },
}; };
#endif #endif
@ -383,7 +400,7 @@ const rgblight_segment_t PROGMEM my_adjust_layer[] = RGBLIGHT_LAYER_SEGMENTS({1,
// Light up fn layer keys // Light up fn layer keys
const rgblight_segment_t PROGMEM my_fn_layer[] = RGBLIGHT_LAYER_SEGMENTS( // left keyboard const rgblight_segment_t PROGMEM my_fn_layer[] = RGBLIGHT_LAYER_SEGMENTS( // left keyboard
{0, 7, HSV_ORANGE}, // MIDI layouts {0, 8, HSV_ORANGE}, // MIDI layouts
{11, 1, HSV_RED}, // RGB_TOG {11, 1, HSV_RED}, // RGB_TOG
{12, 1, HSV_WHITE}, // DF_QWER {12, 1, HSV_WHITE}, // DF_QWER
{13, 1, HSV_CORAL}, // TGLBASS {13, 1, HSV_CORAL}, // TGLBASS
@ -410,15 +427,16 @@ const rgblight_segment_t PROGMEM my_fn_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{53, 1, HSV_PINK}, {53, 1, HSV_PINK},
#endif #endif
// right keyboard // right keyboard
{60, 7, HSV_ORANGE}, // MIDI layouts {60, 8, HSV_ORANGE}, // MIDI layouts
{74, 1, HSV_CORAL}, // TGLBASS {74, 1, HSV_CORAL}, // TGLBASS
{85, 1, HSV_BLUE}, // MIDI Oct {85, 1, HSV_BLUE}, // MIDI Oct
{86, 1, HSV_CYAN}, // MIDI Oct {86, 1, HSV_CYAN}, // MIDI Oct
{87, 1, HSV_SPRINGGREEN}, // MIDI Oct {87, 1, HSV_SPRINGGREEN}, // MIDI Oct
{88, 1, HSV_GREEN}, // MIDI Oct {88, 1, HSV_GREEN}, // MIDI Oct
{89, 1, HSV_CHARTREUSE}, // MIDI Oct {89, 1, HSV_CHARTREUSE}, // MIDI Oct
{95, 1, HSV_GOLD}, // VERSION
{96, 1, HSV_PINK}, // EE_CLR {96, 1, HSV_PINK}, // EE_CLR
{98, 7, HSV_ORANGE}, // MIDI layouts {98, 8, HSV_ORANGE}, // MIDI layouts
{107, 1, HSV_YELLOW}, // MI_VELD {107, 1, HSV_YELLOW}, // MI_VELD
{108, 1, HSV_GREEN}, // MI_VELU {108, 1, HSV_GREEN}, // MI_VELU
{110, 1, HSV_RED}, // RGB_TOG {110, 1, HSV_RED}, // RGB_TOG
@ -530,6 +548,7 @@ void switch_keylight_color4bass(keyrecord_t *record, uint8_t keylocation){
keylight_manager(record, HSV_ORANGE, keylocation); keylight_manager(record, HSV_ORANGE, keylocation);
break; break;
case _C_SYSTEM_BASS2ROW: case _C_SYSTEM_BASS2ROW:
case _FAKE_B_SYSTEM_BASS2ROW:
keylight_manager(record, HSV_YELLOW, keylocation); keylight_manager(record, HSV_YELLOW, keylocation);
break; break;
case _CFLIP_BASS2ROW: case _CFLIP_BASS2ROW:
@ -546,6 +565,7 @@ void switch_keylight_color4chords(keyrecord_t *record, uint8_t keylocation){
keylight_manager(record, HSV_YELLOW, keylocation); keylight_manager(record, HSV_YELLOW, keylocation);
break; break;
case _C_SYSTEM_BASS2ROW: case _C_SYSTEM_BASS2ROW:
case _FAKE_B_SYSTEM_BASS2ROW:
keylight_manager(record, HSV_GOLDENROD, keylocation); keylight_manager(record, HSV_GOLDENROD, keylocation);
break; break;
case _CFLIP_BASS2ROW: case _CFLIP_BASS2ROW:
@ -596,6 +616,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
} }
break; break;
case CNTBASB:
if (record->event.pressed) {
set_single_persistent_default_layer(_FAKE_B_SYSTEM_BASS2ROW);
}
break;
case CSYSALL: case CSYSALL:
if (record->event.pressed) { if (record->event.pressed) {
set_single_persistent_default_layer(_C_SYSTEM_ENTIRELY); set_single_persistent_default_layer(_C_SYSTEM_ENTIRELY);

View File

@ -1,3 +1,19 @@
/*
Copyright 2023 3araht
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 #pragma once
#define GIABARINAIX2 #define GIABARINAIX2

View File

@ -1,3 +1,19 @@
/*
Copyright 2023 3araht
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 #pragma once
#define GIABARINAIX2 #define GIABARINAIX2

View File

@ -58,17 +58,18 @@ user_config_t user_config;
// Defines names for use in layer keycodes and the keymap // Defines names for use in layer keycodes and the keymap
enum layer_names { enum layer_names {
_C_SYSTEM_BASE, // MIDI C-system _C_SYSTEM_BASE, // MIDI C-system
_FAKE_B_SYSTEM, // MIDI fake B-system doesn't have correct assignments on top two rows. The bottom 3 rows are B-system. _FAKE_B_SYSTEM, // MIDI fake B-system doesn't have correct assignments on top two rows. The bottom 3 rows are B-system.
_C_SYSTEM_BASS2ROW, // counter bass system _C_SYSTEM_BASS2ROW, // counter bass system
_C_SYSTEM_ENTIRELY, // single notes for both left and right keybaords. _FAKE_B_SYSTEM_BASS2ROW, // MIDI fake B-system doesn't have correct assignments on top two rows. The bottom 3 rows are B-system. Counter bass version.
_C_SYSTEM_FREEBASS, // C-system Free Bass _C_SYSTEM_ENTIRELY, // single notes for both left and right keybaords.
_C_SYSTEM_FREEBASS, // C-system Free Bass
_CHROMATONE, _CHROMATONE,
_CFLIP_BASS2ROW, // 180 degree flipped layout on right side keyboard _CFLIP_BASS2ROW, // 180 degree flipped layout on right side keyboard
_QWERTY, _QWERTY,
_COLEMAK, _COLEMAK,
_ADJUST, // for Fn keys, etc. _ADJUST, // for Fn keys, etc.
_FN // for changing layers, octaves, etc. _FN // for changing layers, octaves, etc.
}; };
// Defines the keycodes used by our macros in process_record_user // Defines the keycodes used by our macros in process_record_user
@ -181,6 +182,7 @@ enum custom_keycodes {
CSYSTEM, // C-SYSTEM layout CSYSTEM, // C-SYSTEM layout
BSYSTEM, // B-SYSTEM layout BSYSTEM, // B-SYSTEM layout
CNTBASC, // CouNTer BASs C-system layout CNTBASC, // CouNTer BASs C-system layout
CNTBASB, // CouNTer BASs B-system layout
CSYSALL, // C-SYStem ALL layout CSYSALL, // C-SYStem ALL layout
CSYSFBS, // C-SYStem Free BaSs CSYSFBS, // C-SYStem Free BaSs
CHRTONE, // CHRomaTONE layout CHRTONE, // CHRomaTONE layout
@ -240,6 +242,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
MI_A2, MI_C3, MI_Eb3, MI_Fs3, MI_A3, MI_C4, MI_Eb4, MI_Fs4, MI_A4, MI_C5, MI_Eb5, MI_Fs5 MI_A2, MI_C3, MI_Eb3, MI_Fs3, MI_A3, MI_C4, MI_Eb4, MI_Fs4, MI_A4, MI_C5, MI_Eb5, MI_Fs5
), ),
/* fake B-system */
[_FAKE_B_SYSTEM_BASS2ROW] = LAYOUT(
MI_CH_Fr, MI_CH_Cr, MI_CH_Gr, MI_CH_Dr, MI_CH_Ar, MI_CH_Er, MI_CH_Br, MI_CH_Fsr, MI_CH_Csr, MI_CH_Gsr, MI_CH_Dsr, MI_CH_Asr,
MI_CH_Dbr, MI_CH_Abr, MI_CH_Ebr, MI_CH_Bbr, MI_CH_Fr, MI_CH_Cr, MI_CH_Gr, MI_CH_Dr, MI_CH_Ar, MI_CH_Er, MI_CH_Br, MI_CH_Fsr,
MI_CH_Db, MI_CH_Ab, MI_CH_Eb, MI_CH_Bb, MI_CH_F, MI_CH_C, MI_CH_G, MI_CH_D, MI_CH_A, MI_CH_E, MI_CH_B, MI_CH_Fs,
MI_CH_Dbm, MI_CH_Abm, MI_CH_Ebm, MI_CH_Bbm, MI_CH_Fm, MI_CH_Cm, MI_CH_Gm, MI_CH_Dm, MI_CH_Am, MI_CH_Em, MI_CH_Bm, MI_CH_Fsm,
MI_CH_DbDom7, MI_CH_AbDom7, MI_CH_EbDom7, MI_CH_BbDom7, MI_CH_FDom7, MI_CH_CDom7, MI_CH_GDom7, MI_CH_DDom7, MI_CH_ADom7, MI_CH_EDom7, MI_CH_BDom7, MI_CH_FsDom7,
MI_Ab2,
MI_A2, MI_C3, MI_Eb3, MI_Gb3, MI_A3, MI_C4, MI_Eb4, MI_Gb4, MI_A4, MI_C5, MI_Eb5, MI_Gb5, _______,
MI_G2, MI_Bb2, MI_Db3, MI_E3, MI_G3, MI_Bb3, MI_Db4, MI_E4, MI_G4, MI_Bb4, MI_Db5, MI_E5, MI_G5,
MI_Ab2, MI_B2, MI_D3, MI_F3, MI_Ab3, MI_B3, MI_D4, MI_F4, MI_Ab4, MI_B4, MI_D5, MI_F5
),
/* C-system entirely */ /* C-system entirely */
[_C_SYSTEM_ENTIRELY] = LAYOUT( [_C_SYSTEM_ENTIRELY] = LAYOUT(
MI_BNDU, XXXXXXX, XXXXXXX, MI_Db, MI_E, MI_G, MI_Bb, MI_Db1, MI_E1, MI_G1, MI_Bb1, MI_Db2, MI_BNDU, XXXXXXX, XXXXXXX, MI_Db, MI_E, MI_G, MI_Bb, MI_Db1, MI_E1, MI_G1, MI_Bb1, MI_Db2,
@ -340,7 +356,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Fn */ /* Fn */
[_FN] = LAYOUT( [_FN] = LAYOUT(
CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_TOG, CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, CNTBASB, XXXXXXX, XXXXXXX, RGB_MOD, RGB_TOG,
DF_QWER, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_QWER, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
DF_COLE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TGLMICH, DF_COLE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TGLMICH,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
@ -348,24 +364,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
XXXXXXX, XXXXXXX,
MI_OCN2, MI_OCN1, MI_OC0, MI_OC1, MI_OC2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, EE_CLR, _______, MI_OCN2, MI_OCN1, MI_OC0, MI_OC1, MI_OC2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, EE_CLR, _______,
CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, XXXXXXX, XXXXXXX, MI_VELD, MI_VELU, RGB_MOD, RGB_TOG, CSYSTEM, BSYSTEM, CNTBASC, CSYSALL, CHRTONE, CFLIP2B, CSYSFBS, CNTBASB, XXXXXXX, MI_VELD, MI_VELU, RGB_MOD, RGB_TOG,
XXXXXXX, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TGLUVEL, MELDYAL, MELODYS, MELDYAH XXXXXXX, TGLBASS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TGLUVEL, MELDYAL, MELODYS, MELDYAH
) )
}; };
#if defined(ENCODER_MAP_ENABLE) #if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[_C_SYSTEM_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_C_SYSTEM_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_FAKE_B_SYSTEM] = { ENCODER_CCW_CW(_______, _______) }, [_FAKE_B_SYSTEM] = { ENCODER_CCW_CW(_______, _______) },
[_C_SYSTEM_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) }, [_C_SYSTEM_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) },
[_C_SYSTEM_ENTIRELY] = { ENCODER_CCW_CW(_______, _______) }, [_FAKE_B_SYSTEM_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) },
[_C_SYSTEM_FREEBASS] = { ENCODER_CCW_CW(_______, _______) }, [_C_SYSTEM_ENTIRELY] = { ENCODER_CCW_CW(_______, _______) },
[_CHROMATONE] = { ENCODER_CCW_CW(_______, _______) }, [_C_SYSTEM_FREEBASS] = { ENCODER_CCW_CW(_______, _______) },
[_CFLIP_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) }, [_CHROMATONE] = { ENCODER_CCW_CW(_______, _______) },
[_QWERTY] = { ENCODER_CCW_CW(_______, _______) }, [_CFLIP_BASS2ROW] = { ENCODER_CCW_CW(_______, _______) },
[_COLEMAK] = { ENCODER_CCW_CW(_______, _______) }, [_QWERTY] = { ENCODER_CCW_CW(_______, _______) },
[_ADJUST] = { ENCODER_CCW_CW(_______, _______) }, [_COLEMAK] = { ENCODER_CCW_CW(_______, _______) },
[_FN] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, [_ADJUST] = { ENCODER_CCW_CW(_______, _______) },
[_FN] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
}; };
#endif #endif
@ -383,7 +400,7 @@ const rgblight_segment_t PROGMEM my_adjust_layer[] = RGBLIGHT_LAYER_SEGMENTS({1,
// Light up fn layer keys // Light up fn layer keys
const rgblight_segment_t PROGMEM my_fn_layer[] = RGBLIGHT_LAYER_SEGMENTS( // left keyboard const rgblight_segment_t PROGMEM my_fn_layer[] = RGBLIGHT_LAYER_SEGMENTS( // left keyboard
{0, 7, HSV_ORANGE}, // MIDI layouts {0, 8, HSV_ORANGE}, // MIDI layouts
{11, 1, HSV_RED}, // RGB_TOG {11, 1, HSV_RED}, // RGB_TOG
{12, 1, HSV_WHITE}, // DF_QWER {12, 1, HSV_WHITE}, // DF_QWER
{13, 1, HSV_CORAL}, // TGLBASS {13, 1, HSV_CORAL}, // TGLBASS
@ -410,15 +427,16 @@ const rgblight_segment_t PROGMEM my_fn_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{53, 1, HSV_PINK}, {53, 1, HSV_PINK},
#endif #endif
// right keyboard // right keyboard
{60, 7, HSV_ORANGE}, // MIDI layouts {60, 8, HSV_ORANGE}, // MIDI layouts
{74, 1, HSV_CORAL}, // TGLBASS {74, 1, HSV_CORAL}, // TGLBASS
{85, 1, HSV_BLUE}, // MIDI Oct {85, 1, HSV_BLUE}, // MIDI Oct
{86, 1, HSV_CYAN}, // MIDI Oct {86, 1, HSV_CYAN}, // MIDI Oct
{87, 1, HSV_SPRINGGREEN}, // MIDI Oct {87, 1, HSV_SPRINGGREEN}, // MIDI Oct
{88, 1, HSV_GREEN}, // MIDI Oct {88, 1, HSV_GREEN}, // MIDI Oct
{89, 1, HSV_CHARTREUSE}, // MIDI Oct {89, 1, HSV_CHARTREUSE}, // MIDI Oct
{95, 1, HSV_GOLD}, // VERSION
{96, 1, HSV_PINK}, // EE_CLR {96, 1, HSV_PINK}, // EE_CLR
{98, 7, HSV_ORANGE}, // MIDI layouts {98, 8, HSV_ORANGE}, // MIDI layouts
{107, 1, HSV_YELLOW}, // MI_VELD {107, 1, HSV_YELLOW}, // MI_VELD
{108, 1, HSV_GREEN}, // MI_VELU {108, 1, HSV_GREEN}, // MI_VELU
{110, 1, HSV_RED}, // RGB_TOG {110, 1, HSV_RED}, // RGB_TOG
@ -490,7 +508,7 @@ bool rgb_matrix_indicators_user(void) {
// rgb_matrix_set_color(72, RGB_DARKORANGE); // rgb_matrix_set_color(72, RGB_DARKORANGE);
break; break;
case _FN: case _FN:
for (i = 0;i < 7;i++) { for (i = 0;i < 8;i++) {
rgb_matrix_set_color(74 - i, RGB_DARKORANGE); // MIDI layouts rgb_matrix_set_color(74 - i, RGB_DARKORANGE); // MIDI layouts
// right keyboard // right keyboard
rgb_matrix_set_color(i, RGB_DARKORANGE); // MIDI layouts rgb_matrix_set_color(i, RGB_DARKORANGE); // MIDI layouts
@ -512,6 +530,7 @@ bool rgb_matrix_indicators_user(void) {
rgb_matrix_set_color(28, RGB_DARKSPRINGGREEN); // MIDI Oct rgb_matrix_set_color(28, RGB_DARKSPRINGGREEN); // MIDI Oct
rgb_matrix_set_color(29, RGB_DARKGREEN); // MIDI Oct rgb_matrix_set_color(29, RGB_DARKGREEN); // MIDI Oct
rgb_matrix_set_color(30, RGB_DARKCHARTREUSE); // MIDI Oct rgb_matrix_set_color(30, RGB_DARKCHARTREUSE); // MIDI Oct
rgb_matrix_set_color(36, RGB_DARKGOLD); // VERSION
rgb_matrix_set_color(37, RGB_DARKPINK); // EE_CLR rgb_matrix_set_color(37, RGB_DARKPINK); // EE_CLR
rgb_matrix_set_color(41, RGB_DARKYELLOW); // MI_VELD rgb_matrix_set_color(41, RGB_DARKYELLOW); // MI_VELD
rgb_matrix_set_color(40, RGB_DARKGREEN); // MI_VELU rgb_matrix_set_color(40, RGB_DARKGREEN); // MI_VELU
@ -645,6 +664,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
} }
break; break;
case CNTBASB:
if (record->event.pressed) {
set_single_persistent_default_layer(_FAKE_B_SYSTEM_BASS2ROW);
}
break;
case CSYSALL: case CSYSALL:
if (record->event.pressed) { if (record->event.pressed) {
set_single_persistent_default_layer(_C_SYSTEM_ENTIRELY); set_single_persistent_default_layer(_C_SYSTEM_ENTIRELY);

View File

@ -1,3 +1,19 @@
/*
Copyright 2023 3araht
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 #pragma once
#define DYNAMIC_KEYMAP_LAYER_COUNT 3 #define DYNAMIC_KEYMAP_LAYER_COUNT 3

View File

@ -1,18 +1,8 @@
# Build Options # Build Options
# change yes to no to disable # change yes to no to disable
# #
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
MIDI_ENABLE = yes # MIDI support
ENCODER_ENABLE = yes # encoder on mute button
SPLIT_KEYBOARD = yes # Enables split keyboard support
# RGB_MATRIX_ENABLE is not suitable for giabalanai keyboard on the right side (there are dulpicate keys). # RGB_MATRIX_ENABLE is not suitable for giabalanai keyboard on the right side (there are dulpicate keys).
RGB_MATRIX_ENABLE = no # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.) RGB_MATRIX_ENABLE = no # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.)
RGB_MATRIX_DRIVER = WS2812 # 2021/01/23 added. RGB_MATRIX_DRIVER = WS2812 # 2021/01/23 added.