Permalink
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
149 lines (129 sloc) 5.96 KB
#include "iris.h"
#include "action_layer.h"
#include "eeconfig.h"
#include "keymap.h"
extern keymap_config_t keymap_config;
#define _DVORAK 0
#define _GAMING 1
#define _SHIFT 2
#define _LOWER 3
#define _RAISE 4
enum custom_keycodes {
DVORAK = SAFE_RANGE,
SHIFT
};
#define KC_ KC_TRNS
#define _______ KC_TRNS
#define KC_RST RESET
#define KC_BL_S BL_STEP
#define KC_DBUG DEBUG
#define KC_RTOG RGB_TOG
#define KC_RMOD RGB_MOD
#define KC_RHUI RGB_HUI
#define KC_RHUD RGB_HUD
#define KC_RSAI RGB_SAI
#define KC_RSAD RGB_SAD
#define KC_RVAI RGB_VAI
#define KC_RVAD RGB_VAD
#define KC_SHFT SHIFT
#define KC_RASE TT(_RAISE)
#define KC_LOWR MO(_LOWER)
#define KC_TCTL CTL_T(KC_ESC)
#define KC_CLFT LCTL(KC_LEFT)
#define KC_CRHT LCTL(KC_RIGHT)
#define KC_HRSE TG(_RAISE)
#define KC_GMNG DF(_GAMING)
#define KC_UNDO DF(_DVORAK)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DVORAK] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
DLR ,AMPR,LBRC,LCBR,RCBR,LPRN, EQL ,ASTR,RPRN,PLUS,RBRC,BSPC,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
TAB ,SCLN,COMM,DOT , P , Y , F , G , C , R , L ,SLSH,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
TCTL, A , O , E , U , I , D , H , T , N , S ,ENT ,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
SHFT,QUOT, Q , J , K , X ,RASE, LGUI, B , M , W , V , Z ,MINS,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
LOWR,LALT,SPC , LOWR,LCTL,SHFT
// `----+----+----' `----+----+----'
),
[_SHIFT] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
TILD,PERC, 7 , 5 , 3 , 1 , 9 , 0 , 2 , 4 , 6 , 8 ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
, , , , , , , , , , , ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
, , , , , , , , , , , ,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
, , , , , ,HRSE, , , , , , , ,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
, ,DEL , DEL , ,PSCR
// `----+----+----' `----+----+----'
),
[_LOWER] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
F1 , F2 , F3 , F4 , F5 , F6 , , ,CIRC,GRV ,EXLM,HASH,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
F7 , F8 , F9 ,F10 ,F11 ,F12 , ,CLFT, UP ,CRHT, AT ,BSLS,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
, , , , , , ,LEFT,DOWN,RGHT, , ,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
LSFT, , , , , , , VOLU,MUTE,MPLY, , ,UNDO,GMNG,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
, , , VOLD,MPRV,MNXT
// `----+----+----' `----+----+----'
),
[_RAISE] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
, , , , , , ,ACL0,ACL1,ACL2, , ,
//|----+----+----+----+----+----| |----+----+----+----+----+---
, , , , , , ,BTN1,MS_U,BTN2, , ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
, , , , , , ,MS_L,MS_D,MS_R, , ,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
, , , , , ,HRSE, PGUP, , , , , ,INS ,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
, , , PGDN, ,PSCR
// `----+----+----' `----+----+----'
),
[_GAMING] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
GRV , F1 , F2 , F3 , F4 , F5 , , , , , ,BSPC,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
TAB , 1 , 2 , 3 , 4 , 5 , , , , , , ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
LSFT, Q , W , E , R , T , , , , , , ,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
LCTL, A , S , D , F , G ,SPC , RASE, B , , , , , ,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
LALT,LALT,SPC , LOWR,LCTL,LSFT
// `----+----+----' `----+----+----'
)
};
void persistent_default_layer_set(uint16_t default_layer) {
eeconfig_update_default_layer(default_layer);
default_layer_set(default_layer);
}
void switch_to_layer(uint8_t layer, bool pressed) {
if (pressed) {
layer_on(layer);
} else {
layer_off(layer);
}
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (action_for_key(_SHIFT, record->event.key).code != ACTION_TRANSPARENT)
unregister_code(KC_LSFT);
switch (keycode) {
case SHIFT:
switch_to_layer(_SHIFT, record->event.pressed);
if (record->event.pressed) {
register_code(KC_LSFT);
} else {
unregister_code(KC_LSFT);
}
return false;
}
return true;
}