mirror of
https://github.com/firewalkwithm3/qmk_firmware.git
synced 2024-11-22 19:40:29 +08:00
Yet another update to drashna keymaps and userspace (EEPROM, RGB indicators) (#2959)
* More Iris Tweaks * Mess with iris arrow keys * Massive layout overhaul to make everything more OLKB * Additional tweaks * Cleanup Userspace Remove unused layer code, and properly set userspace eeprom structure. * EEPROM stuff * Only use indicators if layer indication is enabled * Iris and Orthodox Tweaks (Status Indicators) * Additional tweaks to finish tri layer conversion * Disable ProMicro ligths globally * Add Pro Micro hacking info * Successfully get mod indication working on thumb clusters * Enable printing when console is enabled * Make Modifier Indicator lights more modular * Keymap cleanup * Tapping test changes * Cleanup and minor tweaks
This commit is contained in:
parent
a572323f94
commit
53a6501d71
|
@ -41,6 +41,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
|
||||
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
|
||||
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
|
||||
|
||||
#define RGBLIGHT_LIMIT_VAL 225
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
|
|
|
@ -2,79 +2,94 @@
|
|||
#include QMK_KEYBOARD_H
|
||||
#include "drashna.h"
|
||||
|
||||
#ifdef INDICATOR_LIGHTS
|
||||
extern userspace_config_t userspace_config;
|
||||
|
||||
uint8_t last_mod;
|
||||
uint8_t last_led;
|
||||
uint8_t last_osm;
|
||||
bool has_mods_changed = false;
|
||||
#endif
|
||||
|
||||
#define KC_ALAP ALT_T(KC_APP)
|
||||
|
||||
#define KC_OSLG OSM(MOD_LGUI)
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_QWERTY] = LAYOUT_wrapper(
|
||||
KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
|
||||
KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
|
||||
KC_TAB , _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSLS,
|
||||
KC_C1R3, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT,
|
||||
KC_MLSF, _________________QWERTY_L3_________________, KC_ALAP, KC_LGUI, _________________QWERTY_R3_________________, KC_MRSF,
|
||||
LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
|
||||
KC_CCCV, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT,
|
||||
KC_MLSF, _________________QWERTY_L3_________________, KC_ALAP, KC_OSLG, _________________QWERTY_R3_________________, KC_MRSF,
|
||||
LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
|
||||
),
|
||||
[_COLEMAK] = LAYOUT_wrapper(
|
||||
KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
|
||||
KC_ESC , ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
|
||||
KC_TAB , _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_BSLS,
|
||||
KC_C1R3, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT,
|
||||
KC_MLSF, _________________COLEMAK_L3________________, KC_ALAP, KC_LGUI, _________________COLEMAK_R3________________, KC_MRSF,
|
||||
LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
|
||||
KC_CCCV, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT,
|
||||
KC_MLSF, _________________COLEMAK_L3________________, KC_ALAP, KC_OSLG, _________________COLEMAK_R3________________, KC_MRSF,
|
||||
LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
|
||||
),
|
||||
[_DVORAK] = LAYOUT_wrapper(
|
||||
KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
|
||||
KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
|
||||
KC_TAB , _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_BSLS,
|
||||
KC_C1R3, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_QUOT,
|
||||
KC_MLSF, _________________DVORAK_L3_________________, KC_ALAP, KC_LGUI, _________________DVORAK_R3_________________, KC_MRSF,
|
||||
LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
|
||||
KC_CCCV, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_QUOT,
|
||||
KC_MLSF, _________________DVORAK_L3_________________, KC_ALAP, KC_OSLG, _________________DVORAK_R3_________________, KC_MRSF,
|
||||
LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
|
||||
),
|
||||
[_WORKMAN] = LAYOUT_wrapper(
|
||||
KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
|
||||
KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
|
||||
KC_TAB , _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, KC_BSLS,
|
||||
KC_C1R3, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT,
|
||||
KC_MLSF, _________________WORKMAN_L3________________, KC_ALAP, KC_LGUI, _________________WORKMAN_R3________________, KC_MRSF,
|
||||
LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
|
||||
KC_CCCV, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT,
|
||||
KC_MLSF, _________________WORKMAN_L3________________, KC_ALAP, KC_OSLG, _________________WORKMAN_R3________________, KC_MRSF,
|
||||
LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
|
||||
),
|
||||
|
||||
[_MODS] = LAYOUT(
|
||||
[_MODS] = LAYOUT_wrapper(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
|
||||
[_LOWER] = LAYOUT(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||
[_LOWER] = LAYOUT_wrapper(
|
||||
_______, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_RBRC, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_LPRN, KC_RPRN, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______,
|
||||
_______, _______, KC_DEL, _______, _______, _______
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_RAISE] = LAYOUT(
|
||||
KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_UNDS, KC_EQL , KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_PLUS, KC_END, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
[_RAISE] = LAYOUT_wrapper(
|
||||
_______, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_ADJUST] = LAYOUT(
|
||||
KC_MAKE, KC_RST, EPRM, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______,
|
||||
RGB_SMOD,RGB_HUI, CK_TOGG, AU_ON, AU_OFF, AG_NORM, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS),
|
||||
KC_RGB_T,RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
[_ADJUST] = LAYOUT_wrapper(
|
||||
KC_MAKE, _______, _______, _______, _______, _______, KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_RST,
|
||||
VRSN, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, _______, _______, _______, _______, _______, EPRM,
|
||||
_______, _______, CK_TOGG, AU_ON, AU_OFF, AG_NORM, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, _______,
|
||||
TG(_MODS),RGB_SMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T,_______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
|
||||
void matrix_init_keymap(void) {
|
||||
#ifdef INDICATOR_LIGHTS
|
||||
last_mod = get_mods();
|
||||
last_led = host_keyboard_leds();
|
||||
last_osm =get_oneshot_mods();
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef INDICATOR_LIGHT
|
||||
uint32_t layer_state_set_keymap (uint32_t state) {
|
||||
#ifdef INDICATOR_LIGHTS
|
||||
uint8_t modifiders = get_mods();
|
||||
uint8_t led_usb_state = host_keyboard_leds();
|
||||
uint8_t one_shot = get_oneshot_mods();
|
||||
|
@ -92,41 +107,49 @@ uint32_t layer_state_set_keymap (uint32_t state) {
|
|||
rgblight_sethsv_at(120, 255, 255, 7);
|
||||
rgblight_sethsv_at(120, 255, 255, 8);
|
||||
}
|
||||
#endif
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
|
||||
void matrix_scan_keymap (void) {
|
||||
static uint8_t current_mods;
|
||||
static uint8_t current_host_leds;
|
||||
static uint8_t current_oneshot_mods;
|
||||
static bool has_status_changed = true;
|
||||
|
||||
if ( current_mods != get_mods() || current_host_leds != host_keyboard_leds() || current_oneshot_mods != get_oneshot_mods()) {
|
||||
has_status_changed = true;
|
||||
current_mods = get_mods();
|
||||
current_host_leds = host_keyboard_leds();
|
||||
current_oneshot_mods = get_oneshot_mods();
|
||||
#ifdef INDICATOR_LIGHTS
|
||||
uint8_t current_mod = get_mods();
|
||||
uint8_t current_led = host_keyboard_leds();
|
||||
uint8_t current_osm =get_oneshot_mods();
|
||||
|
||||
if (last_mod == current_mod) {
|
||||
last_mod = current_mod;
|
||||
has_mods_changed = true;
|
||||
}
|
||||
if (last_led == current_led) {
|
||||
last_led = current_led;
|
||||
has_mods_changed = true;
|
||||
}
|
||||
if (last_osm == current_osm) {
|
||||
last_osm = current_osm;
|
||||
has_mods_changed = true;
|
||||
}
|
||||
if (has_status_changed) {
|
||||
has_status_changed = false;
|
||||
|
||||
if (current_mods & MODS_SHIFT_MASK || current_host_leds & (1<<USB_LED_CAPS_LOCK) || current_oneshot_mods & MODS_SHIFT_MASK) {
|
||||
|
||||
if (userspace_config.rgb_layer_change && has_mods_changed && biton32(layer_state) == 0) {
|
||||
if (current_mod & MODS_SHIFT_MASK || current_led & (1<<USB_LED_CAPS_LOCK) || current_osm & MODS_SHIFT_MASK) {
|
||||
rgblight_sethsv_at(0, 255, 255, 5);
|
||||
rgblight_sethsv_at(0, 255, 255, 10);
|
||||
} else {
|
||||
rgblight_sethsv_default_helper(5);
|
||||
rgblight_sethsv_default_helper(10);
|
||||
}
|
||||
if (current_mods & MODS_CTRL_MASK || current_oneshot_mods & MODS_CTRL_MASK) {
|
||||
if (current_mod & MODS_CTRL_MASK || current_osm & MODS_CTRL_MASK) {
|
||||
rgblight_sethsv_at(51, 255, 255, 6);
|
||||
rgblight_sethsv_at(51, 255, 255, 9);
|
||||
} else {
|
||||
rgblight_sethsv_default_helper(6);
|
||||
rgblight_sethsv_default_helper(9);
|
||||
}
|
||||
if (current_mods & MODS_GUI_MASK || current_oneshot_mods & MODS_GUI_MASK) {
|
||||
if (current_mod & MODS_GUI_MASK || current_osm & MODS_GUI_MASK) {
|
||||
rgblight_sethsv_at(120, 255, 255, 7);
|
||||
rgblight_sethsv_at(120, 255, 255, 8);
|
||||
} else {
|
||||
|
@ -135,7 +158,6 @@ void matrix_scan_keymap (void) {
|
|||
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -9,3 +9,4 @@ AUDIO_ENABLE = yes
|
|||
NKRO_ENABLE = yes
|
||||
BACKLIGHT_ENABLE = no
|
||||
SWAP_HANDS_ENABLE = yes
|
||||
INDICATOR_LIGHTS = yes
|
||||
|
|
|
@ -22,6 +22,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#include QMK_KEYBOARD_H
|
||||
#include "drashna.h"
|
||||
|
||||
#ifdef INDICATOR_LIGHTS
|
||||
extern userspace_config_t userspace_config;
|
||||
|
||||
uint8_t last_mod;
|
||||
uint8_t last_led;
|
||||
uint8_t last_osm;
|
||||
bool has_mods_changed = false;
|
||||
#endif
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
|
@ -33,6 +41,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#define XXXXXXX KC_NO
|
||||
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_QWERTY] = LAYOUT_wrapper(\
|
||||
|
@ -65,27 +74,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
|
||||
[_LOWER] = LAYOUT_wrapper(\
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, _______
|
||||
_______, _________________FUNC_LEFT_________________, KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||
_______, _________________FUNC_RIGHT________________, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______
|
||||
),
|
||||
|
||||
[_RAISE] = LAYOUT_wrapper(\
|
||||
KC_GRV, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_BSPC,
|
||||
_______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, _______
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______
|
||||
),
|
||||
|
||||
[_ADJUST] = LAYOUT_wrapper(\
|
||||
KC_MAKE,KC_RESET, EPRM, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
RGB_SMOD,RGB_HUI, CK_TOGG, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS),
|
||||
KC_RGB_T,RGB_HUD, MU_ON, MU_OFF, MU_TOG, MU_MOD, _______, _______, _______, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY
|
||||
KC_MAKE, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_RESET,
|
||||
VRSN, _______, CK_TOGG, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, EPRM,
|
||||
TG(_MODS),RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T,_______, _______, _______, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY
|
||||
)
|
||||
|
||||
|
||||
};
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
void matrix_init_keymap(void) {
|
||||
#ifdef INDICATOR_LIGHTS
|
||||
last_mod = get_mods();
|
||||
last_led = host_keyboard_leds();
|
||||
last_osm =get_oneshot_mods();
|
||||
#endif
|
||||
}
|
||||
|
||||
uint32_t layer_state_set_keymap (uint32_t state) {
|
||||
#ifdef INDICATOR_LIGHTS
|
||||
uint8_t modifiders = get_mods();
|
||||
uint8_t led_usb_state = host_keyboard_leds();
|
||||
uint8_t one_shot = get_oneshot_mods();
|
||||
|
@ -103,41 +120,49 @@ uint32_t layer_state_set_keymap (uint32_t state) {
|
|||
rgblight_sethsv_at(120, 255, 255, 7);
|
||||
rgblight_sethsv_at(120, 255, 255, 8);
|
||||
}
|
||||
#endif
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
|
||||
void matrix_scan_keymap (void) {
|
||||
static uint8_t current_mods;
|
||||
static uint8_t current_host_leds;
|
||||
static uint8_t current_oneshot_mods;
|
||||
static bool has_status_changed = true;
|
||||
|
||||
if ( current_mods != get_mods() || current_host_leds != host_keyboard_leds() || current_oneshot_mods != get_oneshot_mods()) {
|
||||
has_status_changed = true;
|
||||
current_mods = get_mods();
|
||||
current_host_leds = host_keyboard_leds();
|
||||
current_oneshot_mods = get_oneshot_mods();
|
||||
#ifdef INDICATOR_LIGHTS
|
||||
uint8_t current_mod = get_mods();
|
||||
uint8_t current_led = host_keyboard_leds();
|
||||
uint8_t current_osm =get_oneshot_mods();
|
||||
|
||||
if (last_mod == current_mod) {
|
||||
last_mod = current_mod;
|
||||
has_mods_changed = true;
|
||||
}
|
||||
if (last_led == current_led) {
|
||||
last_led = current_led;
|
||||
has_mods_changed = true;
|
||||
}
|
||||
if (last_osm == current_osm) {
|
||||
last_osm = current_osm;
|
||||
has_mods_changed = true;
|
||||
}
|
||||
if (has_status_changed) {
|
||||
has_status_changed = false;
|
||||
|
||||
if (current_mods & MODS_SHIFT_MASK || current_host_leds & (1<<USB_LED_CAPS_LOCK) || current_oneshot_mods & MODS_SHIFT_MASK) {
|
||||
|
||||
if (userspace_config.rgb_layer_change && has_mods_changed && biton32(layer_state) == 0) {
|
||||
if (current_mod & MODS_SHIFT_MASK || current_led & (1<<USB_LED_CAPS_LOCK) || current_osm & MODS_SHIFT_MASK) {
|
||||
rgblight_sethsv_at(0, 255, 255, 5);
|
||||
rgblight_sethsv_at(0, 255, 255, 10);
|
||||
} else {
|
||||
rgblight_sethsv_default_helper(5);
|
||||
rgblight_sethsv_default_helper(10);
|
||||
}
|
||||
if (current_mods & MODS_CTRL_MASK || current_oneshot_mods & MODS_CTRL_MASK) {
|
||||
if (current_mod & MODS_CTRL_MASK || current_osm & MODS_CTRL_MASK) {
|
||||
rgblight_sethsv_at(51, 255, 255, 6);
|
||||
rgblight_sethsv_at(51, 255, 255, 9);
|
||||
} else {
|
||||
rgblight_sethsv_default_helper(6);
|
||||
rgblight_sethsv_default_helper(9);
|
||||
}
|
||||
if (current_mods & MODS_GUI_MASK || current_oneshot_mods & MODS_GUI_MASK) {
|
||||
if (current_mod & MODS_GUI_MASK || current_osm & MODS_GUI_MASK) {
|
||||
rgblight_sethsv_at(120, 255, 255, 7);
|
||||
rgblight_sethsv_at(120, 255, 255, 8);
|
||||
} else {
|
||||
|
@ -146,5 +171,7 @@ void matrix_scan_keymap (void) {
|
|||
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -7,3 +7,4 @@ TAP_DANCE_ENABLE = no
|
|||
RGBLIGHT_ENABLE = yes
|
||||
AUDIO_ENABLE = yes
|
||||
NKRO_ENABLE = yes
|
||||
INDICATOR_LIGHTS = yes
|
||||
|
|
|
@ -17,7 +17,6 @@ extern keymap_config_t keymap_config;
|
|||
#define DIABLO TG(_DIABLO)
|
||||
#define GAMEPAD TG(_GAMEPAD)
|
||||
#define MEDIA TT(_MEDIA)
|
||||
#define COVECUBE TG(_COVECUBE)
|
||||
|
||||
|
||||
//enum more_custom_keycodes {
|
||||
|
@ -28,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
|
||||
[_NUMLOCK] = LAYOUT_ortho_5x7(
|
||||
LMACRO, DIABLO, GAMEPAD, KC_NLCK, KC_SLCK, KC_COLN, KC_PSLS,
|
||||
MEDIA, KC_CALC, COVECUBE,KC_P7, KC_P8, KC_P9, KC_PAST,
|
||||
MEDIA, KC_CALC, XXXXXXX, KC_P7, KC_P8, KC_P9, KC_PAST,
|
||||
KC_HOME, KC_DEL, KC_PGUP, KC_P4, KC_P5, KC_P6, KC_PMNS,
|
||||
KC_END, KC_UP, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_PPLS,
|
||||
KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_COLN, KC_PENT
|
||||
|
@ -58,13 +57,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
KC_SALT, KC_MORESALT, KC_SALTHARD, KC_JUSTGAME, KC_AIM, XXXXXXX, KC_PENT
|
||||
),
|
||||
|
||||
[_COVECUBE] = LAYOUT_ortho_5x7(
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, COVECUBE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
),
|
||||
|
||||
[_MEDIA] = LAYOUT_ortho_5x7(
|
||||
KC_MAKE, KC_RESET,MU_TOG, AU_ON, AU_OFF, CK_TOGG, RGB_SAD,
|
||||
|
@ -77,13 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
|
||||
};
|
||||
|
||||
void matrix_init_keymap(void) {
|
||||
DDRD &= ~(1<<5);
|
||||
PORTD &= ~(1<<5);
|
||||
|
||||
DDRB &= ~(1<<0);
|
||||
PORTB &= ~(1<<0);
|
||||
}
|
||||
|
||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
|
||||
|
||||
|
|
|
@ -57,11 +57,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
*/
|
||||
[_QWERTY] = LAYOUT_ergodox_pretty_wrapper(
|
||||
// left hand // right hand
|
||||
KC_EQL, ________________NUMBER_LEFT________________, OSL(_MOUS), OSL(_MOUS), ________________NUMBER_RIGHT_______________, KC_MINS,
|
||||
KC_EQL, ________________NUMBER_LEFT________________, _______, _______, ________________NUMBER_RIGHT_______________, KC_MINS,
|
||||
KC_TAB, _________________QWERTY_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________QWERTY_R1_________________, KC_BSLS,
|
||||
KC_C1R3, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT,
|
||||
KC_MLSF, _________________QWERTY_L3_________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_MRSF,
|
||||
LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
|
||||
KC_GRV, ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, KC_CCCV,
|
||||
__________________ERGODOX_THUMB_CLUSTER_____________________
|
||||
),
|
||||
/* Keymap 0: COLEMAK layer
|
||||
|
@ -89,11 +89,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
// Otherwise, it needs KC_*
|
||||
[_COLEMAK] = LAYOUT_ergodox_pretty_wrapper(
|
||||
// left hand // right hand
|
||||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
KC_TAB, _________________COLEMAK_L1________________, TG(_DIABLO), TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS,
|
||||
KC_C1R3, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT,
|
||||
KC_MLSF, _________________COLEMAK_L3________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_MRSF,
|
||||
LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
|
||||
KC_GRV, ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, KC_CCCV,
|
||||
__________________ERGODOX_THUMB_CLUSTER_____________________
|
||||
),
|
||||
/* Keymap 0: DVORAK Layout
|
||||
|
@ -121,11 +121,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
// Otherwise, it needs KC_*
|
||||
[_DVORAK] = LAYOUT_ergodox_pretty_wrapper(
|
||||
// left hand // right hand
|
||||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
|
||||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
|
||||
KC_TAB, _________________DVORAK_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH,
|
||||
KC_C1R3, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_MINS,
|
||||
KC_MLSF, _________________DVORAK_L3_________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_MRSF,
|
||||
LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
|
||||
KC_GRV, ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, KC_CCCV,
|
||||
__________________ERGODOX_THUMB_CLUSTER_____________________
|
||||
),
|
||||
/* Keymap 0: WORKMAN layer
|
||||
|
@ -153,16 +153,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
// Otherwise, it needs KC_*
|
||||
[_WORKMAN] = LAYOUT_ergodox_pretty_wrapper(
|
||||
// left hand
|
||||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
KC_TAB, _________________WORKMAN_L1________________, TG(_DIABLO), TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS,
|
||||
KC_C1R3, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT,
|
||||
KC_MLSF, _________________WORKMAN_L3________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_MRSF,
|
||||
LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
|
||||
KC_GRV, ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, KC_CCCV,
|
||||
__________________ERGODOX_THUMB_CLUSTER_____________________
|
||||
),
|
||||
|
||||
// Reverts OSM(Shift) to normal Shifts. However, may not need since we fixed the issue with RDP (LOCAL RESOURCES)
|
||||
[_MODS] = LAYOUT_ergodox_pretty(
|
||||
[_MODS] = LAYOUT_ergodox_pretty_wrapper(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
|
@ -173,37 +173,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Keymap 3: Symbol Layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | ESC | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | RESET | ! | @ | { | } | | | | | | + | 7 | 8 | 9 | * | F12 |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | MAKE | # | $ | ( | ) | ` |------| |------| - | 4 | 5 | 6 | / | PrtSc |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | VRSN | % | ^ | [ | ] | ~ | | | | NUM | 1 | 2 | 3 | = | PAUSE |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | LT0 | & | * | : | ; | | | 0 | NUM. | ENT | ENT |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | RGBM | RED | | OFF | SOLID|
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | GREEN| | | | |
|
||||
* | RGB | RGB |------| |------| NUM0 | NUME |
|
||||
* | DARK |BRITE | BLUE | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[_SYMB] = LAYOUT_ergodox_pretty(
|
||||
EPRM, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_QWERTY, KC_QWERTY, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
KC_RST, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_COLEMAK, KC_WORKMAN, KC_PPLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PAST, KC_F12,
|
||||
KC_MAKE, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE, KC_PMNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PSLS, KC_PSCREEN,
|
||||
VRSN, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_DVORAK, TG(_MODS), KC_NLCK, KC_KP_1, KC_KP_2, KC_KP_3, KC_PEQL, KC_PAUSE,
|
||||
KC_TRNS, KC_AMPR, KC_ASTR, KC_COLN, KC_SCLN, KC_KP_0, KC_KP_0, KC_PDOT, KC_PENT, KC_TRNS,
|
||||
RGB_SMOD, KC_RGB_T, KC_TRNS, KC_TRNS,
|
||||
RGB_HUI, KC_TRNS,
|
||||
RGB_M_R, RGB_M_SW, RGB_HUD, KC_PDOT, KC_KP_0, KC_PENT
|
||||
),
|
||||
|
||||
/* Keymap 4: Customized Overwatch Layout
|
||||
*
|
||||
|
@ -226,7 +195,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
* | | | H | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[_GAMEPAD] = LAYOUT_ergodox_pretty(
|
||||
[_GAMEPAD] = LAYOUT_ergodox_pretty_wrapper(
|
||||
KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, HYPR(KC_D), HYPR(KC_Q), HYPR(KC_GRV), KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
|
||||
KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, KC_I, KC_O, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
|
@ -258,7 +227,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
* | SHIFT| ALT | 0MAC | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[_DIABLO] = LAYOUT_ergodox_pretty(
|
||||
[_DIABLO] = LAYOUT_ergodox_pretty_wrapper(
|
||||
KC_ESC, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
|
||||
KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
|
@ -269,36 +238,37 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
SFT_T(KC_SPACE), ALT_T(KC_Q), KC_DIABLO_CLEAR, KC_PGDN, KC_DEL, KC_ENT
|
||||
),
|
||||
|
||||
/* Keymap 4: Media and mouse keys
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | | | MsUp | | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | |MsLeft|MsDown|MsRght| | |------| |------| | | Acc0 | Acc1 | Acc2 | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | Acc0 | Acc1 | Acc2 | | | | | | | Mute |VolDn |VolUp | | |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | | | | Play | Stop | | | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | | | | | |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | MWUp | | | | |
|
||||
* | Lclk | Rclk |------| |------| MBn4 | MBn5 |
|
||||
* | | | MWDn | | Mclk | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[_MOUS] = LAYOUT_ergodox_pretty(
|
||||
KC_NO, KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_MS_U, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO,
|
||||
KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_WH_U, KC_NO,
|
||||
KC_BTN1, KC_BTN2, KC_WH_D, KC_BTN3, KC_BTN4, KC_BTN5
|
||||
[_LOWER] = LAYOUT_ergodox_pretty_wrapper(
|
||||
_______, _________________FUNC_LEFT_________________, _______, _______, _________________FUNC_RIGHT________________, KC_F11,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______,
|
||||
_______, _______,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_RAISE] = LAYOUT_ergodox_pretty_wrapper(
|
||||
_______, _________________FUNC_LEFT_________________, _______, _______, _________________FUNC_RIGHT________________, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______,
|
||||
_______, _______,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_ADJUST] = LAYOUT_ergodox_pretty_wrapper(
|
||||
KC_MAKE, _______, _______, _______, _______, _______, _______, _______, KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_RST,
|
||||
VRSN, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, EPRM,
|
||||
RGB_SMOD,RGB_HUI, CK_TOGG, AU_ON, AU_OFF, AG_NORM, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS),
|
||||
TG(_MODS),RGB_SMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T,_______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______,
|
||||
_______, _______,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
};
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define AUDIO_CLICKY
|
||||
#define AUDIO_CLICKY_ON
|
||||
#define STARTUP_SONG SONG(E1M1_DOOM)
|
||||
#define GOODBYE_SONG SONG(SONIC_RING)
|
||||
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
|
||||
|
@ -43,6 +42,8 @@
|
|||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
#undef PERMISSIVE_HOLD
|
||||
#undef PREVENT_STUCK_MODIFIERS
|
||||
#define TAPPING_FORCE_HOLD
|
||||
//#define RETRO_TAPPING
|
||||
|
||||
#define FORCE_NKRO
|
||||
|
||||
|
@ -53,7 +54,7 @@
|
|||
#ifdef TAPPING_TERM
|
||||
#undef TAPPING_TERM
|
||||
#endif // TAPPING_TERM
|
||||
#define TAPPING_TERM 176
|
||||
#define TAPPING_TERM 200
|
||||
|
||||
|
||||
// Disable action_get_macro and fn_actions, since we don't use these
|
||||
|
@ -61,7 +62,7 @@
|
|||
#ifndef NO_DEBUG
|
||||
#define NO_DEBUG
|
||||
#endif // !NO_DEBUG
|
||||
#ifndef NO_PRINT
|
||||
#if !defined(NO_PRINT) && !defined(CONSOLE_ENABLE)
|
||||
#define NO_PRINT
|
||||
#endif // !NO_PRINT
|
||||
#define NO_ACTION_MACRO
|
||||
|
|
|
@ -38,10 +38,6 @@ float tone_paste[][2] = SONG(SCROLL_LOCK_OFF_SOUND);
|
|||
|
||||
|
||||
static uint16_t copy_paste_timer;
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
bool rgb_layer_change = true;
|
||||
#endif
|
||||
|
||||
userspace_config_t userspace_config;
|
||||
|
||||
// Helper Functions
|
||||
|
@ -164,31 +160,42 @@ void led_set_keymap(uint8_t usb_led) {}
|
|||
// call the keymap's init function
|
||||
void matrix_init_user(void) {
|
||||
uint8_t default_layer = eeconfig_read_default_layer();
|
||||
userspace_config.raw = eeprom_read_byte(EECONFIG_USERSPACE);
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_enable();
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
#ifdef BOOTLOADER_CATERINA
|
||||
DDRD &= ~(1<<5);
|
||||
PORTD &= ~(1<<5);
|
||||
|
||||
if (default_layer & (1UL << _COLEMAK)) {
|
||||
DDRB &= ~(1<<0);
|
||||
PORTB &= ~(1<<0);
|
||||
#endif
|
||||
|
||||
if (userspace_config.rgb_layer_change) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_sethsv_magenta();
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
} else if (default_layer & (1UL << _DVORAK)) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_sethsv_green();
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
} else if (default_layer & (1UL << _WORKMAN)) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_sethsv_goldenrod();
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
} else {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_sethsv_teal();
|
||||
rgblight_enable();
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
if (default_layer & (1UL << _COLEMAK)) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_sethsv_magenta();
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
} else if (default_layer & (1UL << _DVORAK)) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_sethsv_green();
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
} else if (default_layer & (1UL << _WORKMAN)) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_sethsv_goldenrod();
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
} else {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_sethsv_teal();
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
}
|
||||
}
|
||||
|
||||
userspace_config.raw = eeprom_read_byte(EECONFIG_USERSPACE);
|
||||
#ifdef AUDIO_CLICKY
|
||||
clicky_enable = userspace_config.clicky_enable;
|
||||
#endif
|
||||
|
||||
#if ( defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE) )
|
||||
set_unicode_input_mode(UC_WINC);
|
||||
|
@ -364,8 +371,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (record->event.pressed) {
|
||||
rgb_layer_change = !rgb_layer_change;
|
||||
if (rgb_layer_change) {
|
||||
userspace_config.rgb_layer_change ^= 1;
|
||||
eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw);
|
||||
if (userspace_config.rgb_layer_change) {
|
||||
layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better)
|
||||
}
|
||||
}
|
||||
|
@ -374,7 +382,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
#ifdef RGBLIGHT_ENABLE
|
||||
case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions
|
||||
if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled
|
||||
rgb_layer_change = false;
|
||||
userspace_config.rgb_layer_change = false;
|
||||
eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw);
|
||||
}
|
||||
return true; break;
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
|
@ -403,8 +412,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
return false;
|
||||
break;
|
||||
case CLICKY_TOGGLE:
|
||||
#ifdef AUDIO_CLICKY
|
||||
userspace_config.clicky_enable = clicky_enable;
|
||||
eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw);
|
||||
#endif
|
||||
break;
|
||||
#ifdef UNICODE_ENABLE
|
||||
case UC_FLIP: // (╯°□°)╯ ︵ ┻━┻
|
||||
|
@ -445,123 +456,104 @@ uint32_t layer_state_set_user(uint32_t state) {
|
|||
state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
|
||||
|
||||
switch (biton32(state)) {
|
||||
case _NAV:
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (rgb_layer_change) {
|
||||
rgblight_sethsv_blue();
|
||||
rgblight_mode(1);
|
||||
}
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
break;
|
||||
case _SYMB:
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (rgb_layer_change) {
|
||||
rgblight_sethsv_blue();
|
||||
rgblight_mode(2);
|
||||
}
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
break;
|
||||
case _MOUS:
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (rgb_layer_change) {
|
||||
rgblight_sethsv_yellow();
|
||||
rgblight_mode(1);
|
||||
}
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
break;
|
||||
case _MACROS:
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (rgb_layer_change) {
|
||||
if (userspace_config.rgb_layer_change) {
|
||||
rgblight_sethsv_orange();
|
||||
userspace_config.is_overwatch ? rgblight_mode(17) : rgblight_mode(18);
|
||||
}
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
|
||||
break;
|
||||
case _MEDIA:
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (rgb_layer_change) {
|
||||
if (userspace_config.rgb_layer_change) {
|
||||
rgblight_sethsv_chartreuse();
|
||||
rgblight_mode(22);
|
||||
}
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
|
||||
break;
|
||||
case _GAMEPAD:
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (rgb_layer_change) {
|
||||
if (userspace_config.rgb_layer_change) {
|
||||
rgblight_sethsv_orange();
|
||||
rgblight_mode(17);
|
||||
}
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
|
||||
break;
|
||||
case _DIABLO:
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (rgb_layer_change) {
|
||||
if (userspace_config.rgb_layer_change) {
|
||||
rgblight_sethsv_red();
|
||||
rgblight_mode(5);
|
||||
}
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
|
||||
break;
|
||||
case _RAISE:
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (rgb_layer_change) {
|
||||
if (userspace_config.rgb_layer_change) {
|
||||
rgblight_sethsv_yellow();
|
||||
rgblight_mode(5);
|
||||
}
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
|
||||
break;
|
||||
case _LOWER:
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (rgb_layer_change) {
|
||||
if (userspace_config.rgb_layer_change) {
|
||||
rgblight_sethsv_orange();
|
||||
rgblight_mode(5);
|
||||
}
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
|
||||
break;
|
||||
case _ADJUST:
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (rgb_layer_change) {
|
||||
if (userspace_config.rgb_layer_change) {
|
||||
rgblight_sethsv_red();
|
||||
rgblight_mode(23);
|
||||
}
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
break;
|
||||
case _COVECUBE:
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (rgb_layer_change) {
|
||||
rgblight_sethsv_green();
|
||||
rgblight_mode(2);
|
||||
}
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
|
||||
break;
|
||||
default: // for any other layers, or the default layer
|
||||
if (default_layer & (1UL << _COLEMAK)) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (rgb_layer_change) { rgblight_sethsv_magenta(); }
|
||||
if (userspace_config.rgb_layer_change) { rgblight_sethsv_magenta(); }
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
|
||||
}
|
||||
else if (default_layer & (1UL << _DVORAK)) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (rgb_layer_change) { rgblight_sethsv_green(); }
|
||||
if (userspace_config.rgb_layer_change) { rgblight_sethsv_green(); }
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
|
||||
}
|
||||
else if (default_layer & (1UL << _WORKMAN)) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (rgb_layer_change) { rgblight_sethsv_goldenrod(); }
|
||||
if (userspace_config.rgb_layer_change) { rgblight_sethsv_goldenrod(); }
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
|
||||
}
|
||||
else {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (rgb_layer_change) { rgblight_sethsv_teal(); }
|
||||
if (userspace_config.rgb_layer_change) { rgblight_sethsv_teal(); }
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
|
||||
}
|
||||
if (biton32(state) == _MODS) { // If the non-OSM layer is enabled, then breathe
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (rgb_layer_change) { rgblight_mode(2); }
|
||||
if (userspace_config.rgb_layer_change) { rgblight_mode(2); }
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
|
||||
} else { // otherwise, stay solid
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (rgb_layer_change) { rgblight_mode(1); }
|
||||
if (userspace_config.rgb_layer_change) { rgblight_mode(1); }
|
||||
#endif // RGBLIGHT_ENABLE
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -27,12 +27,8 @@ enum userspace_layers {
|
|||
_DVORAK,
|
||||
_WORKMAN,
|
||||
_MODS,
|
||||
_NAV,
|
||||
_COVECUBE,
|
||||
_SYMB,
|
||||
_GAMEPAD,
|
||||
_DIABLO,
|
||||
_MOUS,
|
||||
_MACROS,
|
||||
_MEDIA,
|
||||
_LOWER,
|
||||
|
@ -49,7 +45,6 @@ enum userspace_layers {
|
|||
// RGB color codes are no longer located here anymore. Instead, you will want to
|
||||
// head to https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight_list.h
|
||||
|
||||
extern bool rgb_layer_change;
|
||||
extern bool clicky_enable;
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
|
@ -59,10 +54,11 @@ void rgblight_sethsv_default_helper(uint8_t index);
|
|||
#define EECONFIG_USERSPACE (uint8_t *)20
|
||||
|
||||
typedef union {
|
||||
uint32_t raw;
|
||||
uint8_t raw;
|
||||
struct {
|
||||
bool clicky_enable :1;
|
||||
bool is_overwatch :1;
|
||||
bool clicky_enable :1;
|
||||
bool rgb_layer_change :1;
|
||||
bool is_overwatch :1;
|
||||
};
|
||||
} userspace_config_t;
|
||||
|
||||
|
@ -166,10 +162,10 @@ enum {
|
|||
#define LAYOUT KEYMAP
|
||||
#endif
|
||||
|
||||
#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
|
||||
#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
|
||||
#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
|
||||
#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
|
||||
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
|
||||
#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
|
||||
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
|
||||
|
||||
|
||||
// Blocks for each of the four major keyboard layouts
|
||||
|
@ -236,6 +232,8 @@ enum {
|
|||
|
||||
#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
|
||||
#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
|
||||
#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
|
||||
#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
|
||||
|
||||
// Since we have 4 default layouts (QWERTY, DVORAK, COLEMAK and WORKMAN),
|
||||
// this allows us to quickly modify the bottom row for all of the layouts
|
||||
|
@ -245,9 +243,9 @@ enum {
|
|||
#define ___________ERGODOX_BOTTOM_RIGHT____________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
|
||||
|
||||
#define __________________ERGODOX_THUMB_CLUSTER_____________________ ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), \
|
||||
#define __________________ERGODOX_THUMB_CLUSTER_____________________ ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), \
|
||||
KC_HOME, KC_PGUP, \
|
||||
KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER
|
||||
LT(_LOWER, KC_SPACE),KC_BSPC, KC_END, KC_PGDN, KC_DEL, LT(_RAISE, KC_ENTER)
|
||||
|
||||
|
||||
#endif // !USERSPACE
|
||||
|
|
|
@ -162,7 +162,7 @@ This tells us where in the EEPROM that the data structure is located, and this s
|
|||
|
||||
```c
|
||||
typedef union {
|
||||
uint32_t raw;
|
||||
uint8_t raw;
|
||||
struct {
|
||||
bool clicky_enable :1;
|
||||
bool is_overwatch :1;
|
||||
|
@ -174,3 +174,23 @@ Then, in your C file, you want to add: `userspace_config_t userspace_config;`, a
|
|||
From there, you'd want to use the data structure (such as `userspace_config.is_overwatch`) when you want to check this value.
|
||||
|
||||
And if you want to update it, update directly and then use `eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw);` to write the value back to the EEPROM.
|
||||
|
||||
|
||||
Pro Micro Hacking
|
||||
-----------------
|
||||
|
||||
Well, you can get the QMK DFU bootloader working on the ProMicro. But you need to change fuses.
|
||||
|
||||
What worked to get into the firmware properly was:
|
||||
|
||||
```
|
||||
Low: 0x5E High: 0x99 Extended: 0xF3 Lock: 0xFF
|
||||
```
|
||||
|
||||
But some of the columns and rows didn't work, like the pin mapping was wrong. Even when setting the bootloader settings.
|
||||
|
||||
This is here for future reference. And the default fuse settings I believe were:
|
||||
|
||||
```
|
||||
Low: 0xFF High: 0xD8 Extended: 0xC3 Lock: 0x3F
|
||||
```
|
||||
|
|
|
@ -5,3 +5,7 @@ EXTRAFLAGS += -flto
|
|||
ifeq ($(strip $(NO_SECRETS)), yes)
|
||||
OPT_DEFS += -DNO_SECRETS
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(INDICATOR_LIGHTS)), yes)
|
||||
OPT_DEFS += -DINDICATOR_LIGHTS
|
||||
endif
|
||||
|
|
Loading…
Reference in a new issue