Last active
August 26, 2017 21:32
-
-
Save gwash/a142b8980bbba0f476b70a281e7a4e02 to your computer and use it in GitHub Desktop.
qmk gwash kemap gist
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "ergodox.h" | |
#include "debug.h" | |
#include "action_layer.h" | |
#include "version.h" | |
#define _______ KC_TRNS | |
//linux keycodes | |
#define KC_FILEMANAGER KC_MY_COMPUTER | |
#define KC_TOOLS KC_F13 | |
#define KC_LAUNCH5 KC_F14 | |
#define KC_LAUNCH6 KC_F15 | |
#define KC_LAUNCH7 KC_F16 | |
#define KC_LAUNCH8 KC_F17 | |
#define KC_LAUNCH9 KC_F18 | |
#define KC_AUDIO_MIC_MUTE KC_F20 | |
#define KC_TOUCHPAD_TOGGLE KC_F21 | |
#define KC_TOUCHPAD_ON KC_F22 | |
#define KC_TOUCHPAD_OFF KC_F23 | |
#define KC_CANCEL KC_STOP | |
#define KC_REDO KC_AGAIN | |
enum custom_keycodes { | |
PLACEHOLDER = SAFE_RANGE, // can always be here | |
EPRM, | |
VRSN, | |
RGB_SLD, | |
}; | |
enum { | |
TD_COMMA_DOT = 0, | |
TD_SCOLON_COLON, | |
}; | |
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
[0] = KEYMAP( | |
KC_ESCAPE,KC_1,KC_2,KC_3,KC_4,KC_5,KC_SLCK, | |
KC_TAB,KC_Q,KC_P,KC_U,KC_J,KC_Z,TO(1), | |
GUI_T(KC_INSERT),KC_A,KC_N,KC_I,KC_O,TD(TD_COMMA_DOT), | |
KC_LSPO,KC_Y,KC_V,KC_K,KC_B,RCTL_T(KC_MINUS),TT(2), | |
CTL_T(KC_LBRACKET),ALT_T(KC_BSLASH),KC_LEFT,KC_RIGHT,ALGR_T(KC_SPACE), | |
SCMD_T(KC_ENTER),ALL_T(KC_PSCREEN), | |
KC_LEAD, | |
LSFT_T(KC_E),MT(MOD_LGUI, KC_BSPACE),F(0), | |
KC_CAPSLOCK,KC_6,KC_7,KC_8,KC_9,KC_0,KC_EXECUTE, | |
TO(5),TD(TD_SCOLON_COLON),KC_W,KC_D,KC_G,KC_X,KC_EQUAL, | |
KC_DOT,KC_T,KC_H,KC_S,KC_R,RGUI_T(KC_QUOTE), | |
TT(3),CTL_T(KC_SLASH),KC_C,KC_F,KC_M,KC_L,KC_RSPC, | |
ALT_T(KC_BSPACE),KC_DOWN,KC_UP,ALGR_T(KC_GRAVE),RCTL_T(KC_RBRACKET), | |
MEH_T(KC_APPLICATION),SCMD_T(KC_DELETE), | |
OSL(2), | |
F(0),RGUI_T(KC_ENTER),RSFT_T(KC_SPACE) | |
), | |
[1] = KEYMAP( | |
_______,_______,_______,_______,_______,_______,_______, | |
_______,KC_Q,KC_W,KC_E,KC_R,KC_T,TO(2), | |
_______,KC_A,KC_S,KC_D,KC_F,KC_G, | |
_______,KC_Z,KC_X,KC_C,KC_V,RCTL_T(KC_B),_______, | |
_______,_______,_______,_______,ALGR_T(KC_ENTER), | |
_______,_______, | |
_______, | |
LSFT_T(KC_SPACE),_______,_______, | |
_______,_______,_______,_______,_______,_______,KC_EQUAL, | |
TO(0),KC_Y,KC_U,KC_I,KC_O,KC_P,KC_MINUS, | |
KC_H,KC_J,KC_K,KC_L,TD(TD_SCOLON_COLON),_______, | |
_______,CTL_T(KC_N),KC_M,TD(TD_COMMA_DOT),KC_DOT,KC_SLASH,_______, | |
_______,_______,_______,_______,_______, | |
_______,_______, | |
_______, | |
_______,_______,_______ | |
), | |
[2] = KEYMAP( | |
_______,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,_______, | |
_______,KC_HASH,KC_EXLM,KC_LCBR,KC_RCBR,KC_TILD,TO(3), | |
OSM(MOD_LGUI),KC_AT,KC_DLR,KC_LPRN,KC_RPRN,KC_CIRC, | |
OSM(MOD_LSFT),KC_AMPR,KC_PERC,KC_LBRACKET,KC_RBRACKET,RCTL_T(KC_NONUS_BSLASH),_______, | |
OSM(MOD_LCTL),OSM(MOD_LALT),KC_LABK,KC_RABK,ALGR_T(KC_NONUS_HASH), | |
_______,_______, | |
_______, | |
OSM(MOD_LSFT),_______,_______, | |
KC_NUMLOCK,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11, | |
TO(1),KC_KP_EQUAL,KC_KP_7,KC_KP_8,KC_KP_9,KC_KP_ASTERISK,KC_F12, | |
KC_KP_COMMA,KC_KP_4,KC_KP_5,KC_KP_6,KC_KP_SLASH,OSM(MOD_RGUI), | |
_______,CTL_T(KC_CALCULATOR),KC_KP_1,KC_KP_2,KC_KP_3,KC_KP_PLUS,OSM(MOD_RSFT), | |
ALT_T(KC_KP_0),KC_DOT,KC_KP_ENTER,KC_KP_MINUS,OSM(MOD_RCTL), | |
_______,_______, | |
_______, | |
_______,_______,_______ | |
), | |
[3] = KEYMAP( | |
_______,KC_HELP,KC_SYSTEM_WAKE,KC_SYSTEM_SLEEP,KC_SYSTEM_POWER,KC_LAUNCH5,_______, | |
KC_MEDIA_STOP,KC_FILEMANAGER,KC_TOOLS,KC_APPLICATION,KC_MAIL,KC_MS_ACCEL0,TO(4), | |
GUI_T(KC_MEDIA_PLAY_PAUSE),KC_LEFT,KC_UP,KC_DOWN,KC_RIGHT,KC_MS_ACCEL1, | |
SFT_T(KC_MEDIA_PREV_TRACK),KC_MEDIA_NEXT_TRACK,KC_COPY,KC_CUT,KC_PASTE,KC_MS_ACCEL2,_______, | |
CTL_T(KC_MEDIA_REWIND),ALT_T(KC_MEDIA_FAST_FORWARD),KC_AUDIO_VOL_UP,KC_AUDIO_VOL_DOWN,ALGR_T(KC_AUDIO_MUTE), | |
SCMD_T(KC_WWW_REFRESH),LCTL(KC_W), | |
_______, | |
KC_MS_BTN2,GUI_T(KC_WWW_FORWARD),_______, | |
RESET,KC_LAUNCH6,KC_LAUNCH7,KC_LAUNCH8,KC_LAUNCH9,_______,KC_MS_BTN4, | |
TO(2),KC_MS_BTN3,(KC_MS_WH_UP | KC_MS_WH_LEFT),KC_MS_BTN1,KC_MS_BTN2,(KC_MS_WH_UP | KC_MS_WH_RIGHT),KC_MS_BTN5, | |
KC_MS_WH_UP,KC_MS_LEFT,KC_MS_DOWN,KC_MS_UP,KC_MS_RIGHT,_______, | |
_______,KC_MS_WH_DOWN,(KC_MS_DOWN | KC_MS_RIGHT),KC_MS_WH_LEFT,KC_MS_WH_RIGHT,(KC_MS_WH_DOWN | KC_MS_WH_RIGHT),_______, | |
ALT_T(KC_HOME),KC_PGDOWN,KC_PGUP,ALGR_T(KC_END),_______, | |
MEH_T(KC_WWW_FAVORITES),SCMD_T(KC_WWW_SEARCH), | |
KC_WWW_HOME, | |
_______,RGUI_T(KC_WWW_BACK),KC_MS_BTN1 | |
), | |
[4] = KEYMAP( | |
_______,KC_LANG1,KC_LANG2,KC_LANG3,KC_LANG4,_______,_______, | |
_______,_______,KC_INT2,_______,KC_INT4,KC_INT5,TO(5), | |
_______,KC_CANCEL,KC_REDO,KC_UNDO,KC_FIND,KC_PAUSE, | |
_______,KC_LOCKING_CAPS,KC_LOCKING_NUM,KC_LOCKING_SCROLL,_______,M(1),_______, | |
_______,_______,_______,_______,_______, | |
_______,_______, | |
_______, | |
_______,_______,_______, | |
_______,KC_TOUCHPAD_ON,KC_TOUCHPAD_OFF,KC_TOUCHPAD_TOGGLE,KC_MENU,KC_SELECT,_______, | |
TO(3),_______,_______,KC_FN2,KC_FN3,KC_FN4,_______, | |
_______,_______,F(2),F(3),F(4),_______, | |
_______,_______,_______,_______,_______,_______,_______, | |
_______,_______,_______,_______,_______, | |
_______,_______, | |
_______, | |
_______,_______,_______ | |
), | |
[5] = KEYMAP( | |
_______,_______,_______,_______,_______,_______,_______, | |
_______,KC_Z,KC_F,KC_X,KC_SPACE,KC_T,TO(0), | |
OSM(MOD_LALT),KC_A,KC_W,KC_S,KC_D,KC_R, | |
_______,KC_Q,KC_E,KC_C,KC_LCTL,KC_M,TO(3), | |
_______,_______,_______,_______,KC_G, | |
_______,_______, | |
_______, | |
OSM(MOD_LSFT),KC_SPACE,KC_BSPACE, | |
_______,_______,_______,_______,_______,_______,KC_EQUAL, | |
TO(4),KC_Y,KC_U,KC_I,KC_O,KC_P,KC_MINUS, | |
KC_H,KC_J,KC_I,KC_K,KC_L,_______, | |
TO(2),CTL_T(KC_N),KC_B,TD(TD_COMMA_DOT),KC_DOT,KC_SLASH,_______, | |
KC_LEFT,KC_DOWN,KC_UP,KC_RIGHT,_______, | |
_______,_______, | |
_______, | |
_______,_______,_______ | |
), | |
}; | |
const uint16_t PROGMEM fn_actions[] = { | |
[0] = ACTION_SWAP_HANDS_TAP_TOGGLE(), | |
[1] = ACTION_LAYER_TAP_TOGGLE(1) | |
}; | |
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { | |
if (record->event.pressed) { | |
switch(id) { | |
case 0: | |
SEND_STRING("QMK is the best thing ever!"); | |
return false; | |
case 1: | |
SEND_STRING ("\u00AF\\_(\u30C4)_/\u00AF"); | |
return false; | |
} | |
} | |
return MACRO_NONE; | |
}; | |
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |
switch (keycode) { | |
// dynamically generate these. | |
case EPRM: | |
if (record->event.pressed) { | |
eeconfig_init(); | |
} | |
return false; | |
break; | |
case VRSN: | |
if (record->event.pressed) { | |
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); | |
} | |
return false; | |
break; | |
case RGB_SLD: | |
if (record->event.pressed) { | |
//rgblight_mode(1); | |
} | |
return false; | |
break; | |
} | |
return true; | |
} | |
LEADER_EXTERNS(); | |
void matrix_scan_user(void) { | |
uint8_t layer = biton32(layer_state); | |
ergodox_board_led_off(); | |
ergodox_right_led_1_off(); | |
ergodox_right_led_2_off(); | |
ergodox_right_led_3_off(); | |
switch (layer) { | |
case 1: | |
ergodox_right_led_1_on(); | |
break; | |
case 2: | |
ergodox_right_led_2_on(); | |
break; | |
case 3: | |
ergodox_right_led_3_on(); | |
break; | |
case 4: | |
ergodox_right_led_1_on(); | |
ergodox_right_led_2_on(); | |
break; | |
case 5: | |
ergodox_right_led_1_on(); | |
ergodox_right_led_3_on(); | |
break; | |
case 6: | |
ergodox_right_led_2_on(); | |
ergodox_right_led_3_on(); | |
break; | |
case 7: | |
ergodox_right_led_1_on(); | |
ergodox_right_led_2_on(); | |
ergodox_right_led_3_on(); | |
break; | |
default: | |
break; | |
} | |
LEADER_DICTIONARY() { | |
leading = false; | |
leader_end(); | |
SEQ_ONE_KEY(KC_P) { | |
register_code(KC_MEDIA_PLAY_PAUSE); | |
unregister_code(KC_MEDIA_PLAY_PAUSE); | |
} | |
SEQ_ONE_KEY(KC_T) { | |
register_code(MOD_LGUI); | |
register_code(KC_F2); | |
unregister_code(KC_F2); | |
unregister_code(MOD_LGUI); | |
} | |
SEQ_ONE_KEY(KC_F) { | |
register_code(KC_FILEMANAGER); | |
unregister_code(KC_FILEMANAGER); | |
} | |
SEQ_TWO_KEYS(KC_P, KC_P) { | |
register_code(KC_MEDIA_NEXT_TRACK); | |
unregister_code(KC_MEDIA_NEXT_TRACK); | |
} | |
} | |
}; | |
qk_tap_dance_action_t tap_dance_actions[] = { | |
[TD_COMMA_DOT] = ACTION_TAP_DANCE_DOUBLE(KC_COMMA,KC_DOT), | |
[TD_SCOLON_COLON] = ACTION_TAP_DANCE_DOUBLE(KC_SCOLON,KC_COLN), | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment