You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
5.3 KiB
138 lines
5.3 KiB
#include "ergodash.h"
|
|
#include "action_layer.h"
|
|
#include "eeconfig.h"
|
|
|
|
extern keymap_config_t keymap_config;
|
|
|
|
#define _QWERTY 0
|
|
#define _LOWER 1
|
|
#define _RAISE 2
|
|
#define _ADJUST 16
|
|
|
|
enum custom_keycodes {
|
|
QWERTY = SAFE_RANGE,
|
|
LOWER,
|
|
RAISE,
|
|
ADJUST,
|
|
};
|
|
|
|
// Fillers to make layering more clear
|
|
#define KC_ KC_TRNS
|
|
#define _______ KC_TRNS
|
|
#define XXXXXXX KC_NO
|
|
#define KC_AJST ADJUST
|
|
#define KC_LOWR LOWER
|
|
#define KC_RASE RAISE
|
|
#define KC_JPN LALT(KC_GRV)
|
|
|
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
|
|
/* QWERTY
|
|
*/
|
|
[_QWERTY] = KC_KEYMAP(
|
|
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----.
|
|
ESC, 1, 2, 3, 4, 5, LBRC, RBRC, 6, 7, 8, 9, 0, CAPS,
|
|
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
|
|
GRV , Q , W , E , R , T , MINS, EQL, Y , U , I , O , P ,BSLS,
|
|
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
|
|
TAB , A , S , D , F , G ,DEL , BSPC, H , J , K , L ,SCLN,QUOT,
|
|
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
|
|
LSFT, Z , X , C , V , B ,JPN, ENT, N , M ,COMM, DOT,SLSH,RSFT,
|
|
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
|
|
LCTL,LGUI,LALT, AJST, LOWR,SPC, ENT,RASE, LEFT,DOWN, UP ,RGHT
|
|
//`----+----+----+----+----+----+----' `----+----+----+----+----+----+----'
|
|
),
|
|
|
|
/* Lower
|
|
*/
|
|
[_LOWER] = KC_KEYMAP(
|
|
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----.
|
|
F11, F1, F2, F3, F4, F5, LCBR, RCBR, F6, F7, F8, F9, F10, F12,
|
|
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
|
|
TILD,EXLM, AT ,HASH, DLR,PERC,UNDS, PLUS,CIRC,AMPR,ASTR,LPRN,RPRN,PIPE,
|
|
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
|
|
TAB , 1 , 2 , 3 , 4 , 5 ,DEL , BSPC, H , J , K , L ,COLN, DQT,
|
|
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
|
|
LSFT, 6 , 7 , 8 , 9 , 0 ,JPN, ENT, N , M , LT , GT ,QUES,RSFT,
|
|
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
|
|
LCTL,LGUI,LALT, AJST, LOWR,SPC, ENT,RASE, HOME,PGDN,PGUP, END
|
|
//`----+----+----+----+----+----+----' `----+----+----+----+----+----+----'
|
|
),
|
|
|
|
/* Raise
|
|
*/
|
|
[_RAISE] = KC_KEYMAP(
|
|
//,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----.
|
|
F11, F1, F2, F3, F4, F5, LCBR, RCBR, F6, F7, F8, F9, F10, F12,
|
|
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
|
|
TILD,EXLM, AT ,HASH, DLR,PERC,UNDS, PLUS,CIRC,AMPR,ASTR,LPRN,RPRN,PIPE,
|
|
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
|
|
TAB , 1 , 2 , 3 , 4 , 5 ,DEL , BSPC, H , J , K , L ,COLN, DQT,
|
|
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
|
|
LSFT, 6 , 7 , 8 , 9 , 0 ,JPN, ENT, N , M , LT , GT ,QUES,RSFT,
|
|
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
|
|
LCTL,LGUI,LALT, AJST, LOWR,SPC, ENT,RASE, HOME,PGDN,PGUP, END
|
|
//`----+----+----+----+----+----+----' `----+----+----+----+----+----+----'
|
|
),
|
|
|
|
[_ADJUST] = KEYMAP(
|
|
_______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, \
|
|
_______, RESET , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI,_______, _______, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, \
|
|
_______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, \
|
|
_______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, \
|
|
_______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______ \
|
|
)
|
|
};
|
|
|
|
#ifdef AUDIO_ENABLE
|
|
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
|
|
#endif
|
|
|
|
void persistent_default_layer_set(uint16_t default_layer) {
|
|
eeconfig_update_default_layer(default_layer);
|
|
default_layer_set(default_layer);
|
|
}
|
|
|
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|
switch (keycode) {
|
|
case QWERTY:
|
|
if (record->event.pressed) {
|
|
#ifdef AUDIO_ENABLE
|
|
PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
|
|
#endif
|
|
persistent_default_layer_set(1UL<<_QWERTY);
|
|
}
|
|
return false;
|
|
break;
|
|
case LOWER:
|
|
if (record->event.pressed) {
|
|
layer_on(_LOWER);
|
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
|
} else {
|
|
layer_off(_LOWER);
|
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
|
}
|
|
return false;
|
|
break;
|
|
case RAISE:
|
|
if (record->event.pressed) {
|
|
layer_on(_RAISE);
|
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
|
} else {
|
|
layer_off(_RAISE);
|
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
|
}
|
|
return false;
|
|
break;
|
|
case ADJUST:
|
|
if (record->event.pressed) {
|
|
layer_on(_ADJUST);
|
|
} else {
|
|
layer_off(_ADJUST);
|
|
}
|
|
return false;
|
|
break;
|
|
}
|
|
return true;
|
|
}
|