keymap.c 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #include QMK_KEYBOARD_H
  2. enum layer_names {
  3. _QWERTY = 0,
  4. _DVORAK,
  5. _LOWER,
  6. _RAISE,
  7. _LIFT
  8. };
  9. // Fillers to make layering more clear
  10. #define _LAYER_ KC_TRNS
  11. // Adding macros to make the keymaps below much easier to read.
  12. #define CTL_ESC CTL_T(KC_ESC)
  13. #define CTL_GRV CTL_T(KC_GRV)
  14. #define ALT_TAB ALT_T(KC_TAB)
  15. #define SFT_SPC SFT_T(KC_SPC)
  16. // Extended alpha key layers
  17. #define RSE_J LT(_RAISE, KC_J)
  18. #define LWR_F LT(_LOWER, KC_F)
  19. #define RSE_H LT(_RAISE, KC_H)
  20. #define LWR_U LT(_LOWER, KC_U)
  21. #define LFT_BK LT(_LIFT, KC_BSPC)
  22. #define LFT_ENT LT(_LIFT, KC_ENT)
  23. // Macro keys for some apps
  24. #define SLACKUP LALT(LSFT(KC_UP))
  25. #define SLACKDN LALT(LSFT(KC_DOWN))
  26. #define TAB_LFT LGUI(LSFT(KC_LBRC))
  27. #define TAB_RGT LGUI(LSFT(KC_RBRC))
  28. #define BWSR_BK LGUI(KC_LBRC)
  29. #define BWSR_FW LGUI(KC_RBRC)
  30. #define SCR_LFT HYPR(KC_LEFT)
  31. #define SCR_RGT HYPR(KC_RGHT)
  32. #define SCR_FUL HYPR(KC_F)
  33. // Layer toggles
  34. #define TO_QW TO(_QWERTY)
  35. #define TO_DV TO(_DVORAK)
  36. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  37. [_QWERTY] = LAYOUT(
  38. KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC ,
  39. KC_ESC , KC_A , KC_S , KC_D , LWR_F , KC_G , KC_H , RSE_J , KC_K , KC_L , KC_SCLN , KC_QUOT ,
  40. KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_ENT ,
  41. KC_HYPR , CTL_GRV , ALT_TAB , KC_LGUI , LFT_BK , SFT_SPC , KC_SPC , LFT_ENT , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT
  42. ),
  43. [_DVORAK] = LAYOUT(
  44. KC_TAB , KC_QUOT , KC_COMM , KC_DOT , KC_P , KC_Y , KC_F , KC_G , KC_C , KC_R , KC_L , KC_BSPC ,
  45. KC_ESC , KC_A , KC_O , KC_E , LWR_U , KC_I , KC_D , RSE_H , KC_T , KC_N , KC_S , KC_SLSH ,
  46. KC_LSFT , KC_SCLN , KC_Q , KC_J , KC_K , KC_X , KC_B , KC_M , KC_W , KC_V , KC_Z , KC_ENT ,
  47. KC_HYPR , CTL_GRV , ALT_TAB , KC_LGUI , LFT_BK , SFT_SPC , KC_SPC , LFT_ENT , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT
  48. ),
  49. [_LOWER] = LAYOUT(
  50. _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_7 , KC_8 , KC_9 , XXXXXXX , _______ ,
  51. _______ , XXXXXXX , XXXXXXX , XXXXXXX , _LAYER_ , XXXXXXX , XXXXXXX , KC_4 , KC_5 , KC_6 , XXXXXXX , _______ ,
  52. _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_1 , KC_2 , KC_3 , XXXXXXX , _______ ,
  53. _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_0 , KC_DOT , _______ , _______
  54. ),
  55. [_RAISE] = LAYOUT(
  56. _______ , KC_LABK , KC_RABK , KC_LCBR , KC_RCBR , KC_EQL , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ ,
  57. _______ , KC_LPRN , KC_RPRN , KC_LBRC , KC_RBRC , KC_MINS , XXXXXXX , _LAYER_ , XXXXXXX , XXXXXXX , XXXXXXX , _______ ,
  58. _______ , XXXXXXX , XXXXXXX , XXXXXXX , KC_BSLS , KC_SLSH , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ ,
  59. _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
  60. ),
  61. [_LIFT] = LAYOUT(
  62. _______ , BWSR_BK , TAB_LFT , KC_UP , TAB_RGT , BWSR_FW , KC_MUTE , XXXXXXX , SCR_LFT , SCR_FUL , SCR_RGT , _______ ,
  63. _______ , XXXXXXX , KC_LEFT , KC_DOWN , KC_RGHT , KC_PGUP , KC_VOLU , SLACKUP , XXXXXXX , XXXXXXX , TO_QW , _______ ,
  64. _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_PGDN , KC_VOLD , SLACKDN , XXXXXXX , XXXXXXX , TO_DV , _______ ,
  65. _______ , RESET , _______ , _______ , _LAYER_ , KC_BSPC , _______ , KC_LSFT , KC_LGUI , KC_LALT , KC_LCTL , _______
  66. )
  67. };