Keymap: Refactor Hacker Dvorak (#4688)

Programmer Dvorak based layout for the Ergodox EZ.
This commit is contained in:
Ismael Venegas Castelló
2018-12-19 18:49:56 -06:00
committed by Drashna Jaelre
parent b13162f7fd
commit 5eb8f3f6b5
22 changed files with 925 additions and 826 deletions

View File

@@ -0,0 +1,3 @@
// void eeconfig_init_user(void) {
//
// };

View File

@@ -0,0 +1,121 @@
uint32_t layer_state_set_user(uint32_t state) {
uint8_t layer = biton32(state);
switch (layer) {
case DVORAK:
rgblight_sethsv_noeeprom_green();
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
if (PLOVER_MODE) {
plover_toggle();
PLOVER_MODE = false;
}
break;
case PLOVER:
rgblight_sethsv_noeeprom_red();
rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3);
if (!(PLOVER_MODE)) {
plover_toggle();
PLOVER_MODE = true;
}
break;
case GAMING:
rgblight_sethsv_noeeprom_red();
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
if (PLOVER_MODE) {
plover_toggle();
PLOVER_MODE = false;
}
break;
case ARROWS:
rgblight_sethsv_noeeprom_blue();
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
if (PLOVER_MODE) {
plover_toggle();
PLOVER_MODE = false;
}
break;
case MOUSE:
rgblight_sethsv_noeeprom_blue();
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
if (PLOVER_MODE) {
plover_toggle();
PLOVER_MODE = false;
}
break;
case NUMPAD:
rgblight_sethsv_noeeprom_blue();
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
if (PLOVER_MODE) {
plover_toggle();
PLOVER_MODE = false;
}
break;
case LAYERS:
rgblight_sethsv_noeeprom_cyan();
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
if (PLOVER_MODE) {
plover_toggle();
PLOVER_MODE = false;
}
break;
case MEDIA_FN:
rgblight_sethsv_noeeprom_yellow();
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
if (PLOVER_MODE) {
plover_toggle();
PLOVER_MODE = false;
}
break;
case HYPER:
rgblight_sethsv_noeeprom_magenta();
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
if (PLOVER_MODE) {
plover_toggle();
PLOVER_MODE = false;
}
break;
case FIRMWARE:
rgblight_sethsv_noeeprom_magenta();
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
if (PLOVER_MODE) {
plover_toggle();
PLOVER_MODE = false;
}
break;
default:
break;
}
return state;
}

View File

@@ -0,0 +1,12 @@
#include "../leader/leader_setup.c"
bool MATRIX_SCANNED = false;
void matrix_scan_user(void) {
if (!(MATRIX_SCANNED)) {
rgblight_sethsv_noeeprom_green();
MATRIX_SCANNED = true;
}
#include "../leader/leader_dictionary.c"
};

View File

@@ -0,0 +1,75 @@
// TODO: Improve this currently there is no feedback if activated by other means.
bool CAPS_LOCK = false;
bool NUM_LOCK = false;
bool SCROLL_LOCK = false;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (!process_record_dynamic_macro(keycode, record)) {
return false;
}
switch (keycode) {
case KC_CLCK:
if (record->event.pressed) {
if (!(CAPS_LOCK)) {
ergodox_right_led_1_on();
CAPS_LOCK = true;
} else {
ergodox_right_led_1_off();
CAPS_LOCK = false;
}
}
return true;
case KC_NLCK:
if (record->event.pressed) {
if (!(NUM_LOCK)) {
ergodox_right_led_2_on();
NUM_LOCK = true;
} else {
ergodox_right_led_2_off();
NUM_LOCK = false;
}
}
return true;
case KC_SLCK:
if (record->event.pressed) {
if (!(SCROLL_LOCK)) {
ergodox_right_led_3_on();
SCROLL_LOCK = true;
} else {
ergodox_right_led_3_off();
SCROLL_LOCK = false;
}
}
return true;
case KC_MS_WH_UP ... KC_MS_WH_RIGHT:
if (record->event.pressed) {
if (SCROLL_LOCK) {
return false;
} else {
return true;
}
}
case MY_CUSTOM_MACRO:
if (record->event.pressed) {
SEND_STRING("QMK is the best thing ever!"); // this is our macro!
return false;
}
case MY_OTHER_MACRO:
if (record->event.pressed) {
SEND_STRING(SS_LCTRL("ac")); // selects all and copies
return false;
}
default:
return true;
}
}