2 #include "action_layer.h"
5 extern keymap_config_t keymap_config
;
16 enum custom_keycodes
{
28 #define _______ KC_TRNS
30 #define KC_CAPW LGUI(LSFT(KC_3)) // Capture whole screen
31 #define KC_CPYW LGUI(LSFT(LCTL(KC_3))) // Copy whole screen
32 #define KC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen
33 #define KC_CPYP LGUI(LSFT(LCTL(KC_4))) // Copy portion of screen
34 #define KC_X0 MT(MOD_LCTL, KC_ESC)
37 #define KC_X3 LT(_FN3, KC_GRV)
38 #define KC_X4 MT(MOD_LSFT, KC_ENT)
40 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
42 [_QWERTY
] = LAYOUT_kc(
43 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
44 ESC
, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC
,
45 //|----+----+----+----+----+----| |----+----+----+----+----+----|
46 TAB
, Q
, W
, E
, R
, T
, Y
, U
, I
, O
, P
,MINS
,
47 //|----+----+----+----+----+----| |----+----+----+----+----+----|
48 X0
, A
, S
, D
, F
, G
, H
, J
, K
, L
,SCLN
,QUOT
,
49 //|----+----+----+----+----+----| |----+----+----+----+----+----|
50 LSFT
, Z
, X
, C
, V
, B
, N
, M
,COMM
,DOT
,SLSH
, X4
,
51 //|----+----+----+----+----+----| |----+----+----+----+----+----|
52 X3
,LCTL
,LALT
,LGUI
, X1
,SPC
, BSPC
, X2
,LEFT
,DOWN
, UP
,RGHT
53 //`----+----+----+----+----+----' `----+----+----+----+----+----'
56 [_COLEMAK
] = LAYOUT_kc(
57 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
58 ESC
, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC
,
59 //|----+----+----+----+----+----| |----+----+----+----+----+----|
60 TAB
, Q
, W
, F
, P
, G
, J
, L
, U
, Y
,SCLN
,MINS
,
61 //|----+----+----+----+----+----| |----+----+----+----+----+----|
62 X0
, A
, R
, S
, T
, D
, H
, N
, E
, I
, O
,QUOT
,
63 //|----+----+----+----+----+----| |----+----+----+----+----+----|
64 LSFT
, Z
, X
, C
, V
, B
, K
, M
,COMM
,DOT
,SLSH
, X4
,
65 //|----+----+----+----+----+----| |----+----+----+----+----+----|
66 X3
,LCTL
,LALT
,LGUI
, X1
,SPC
, BSPC
, X2
,LEFT
,DOWN
, UP
,RGHT
67 //`----+----+----+----+----+----' `----+----+----+----+----+----'
70 [_DVORAK
] = LAYOUT_kc(
71 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
72 ESC
, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC
,
73 //|----+----+----+----+----+----| |----+----+----+----+----+----|
74 TAB
,QUOT
,COMM
,DOT
, P
, Y
, F
, G
, C
, R
, L
,MINS
,
75 //|----+----+----+----+----+----| |----+----+----+----+----+----|
76 X0
, A
, O
, E
, U
, I
, D
, H
, T
, N
, S
,SLSH
,
77 //|----+----+----+----+----+----| |----+----+----+----+----+----|
78 LSFT
,SCLN
, Q
, J
, K
, X
, B
, M
, W
, V
, Z
, X4
,
79 //|----+----+----+----+----+----| |----+----+----+----+----+----|
80 X3
,LCTL
,LALT
,LGUI
, X1
,SPC
, BSPC
, X2
,LEFT
,DOWN
, UP
,RGHT
81 //`----+----+----+----+----+----' `----+----+----+----+----+----'
85 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
86 TILD
,EXLM
, AT
,HASH
,DLR
,PERC
, CIRC
,AMPR
,ASTR
,LPRN
,RPRN
,BSPC
,
87 //|----+----+----+----+----+----| |----+----+----+----+----+----|
88 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , ,
89 //|----+----+----+----+----+----| |----+----+----+----+----+----|
90 DEL
,CAPP
,LEFT
,RGHT
, UP
,LBRC
, RBRC
, P4
, P5
, P6
,PLUS
,PIPE
,
91 //|----+----+----+----+----+----| |----+----+----+----+----+----|
92 ,CPYP
, , ,DOWN
,LCBR
, RCBR
, P1
, P2
, P3
,MINS
, ,
93 //|----+----+----+----+----+----| |----+----+----+----+----+----|
94 , , , , , , DEL
, , P0
,PDOT
, ,
95 //`----+----+----+----+----+----' `----+----+----+----+----+----'
99 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
100 TILD
,EXLM
, AT
,HASH
,DLR
,PERC
, CIRC
,AMPR
,ASTR
,LPRN
,RPRN
,BSPC
,
101 //|----+----+----+----+----+----| |----+----+----+----+----+----|
102 ,EXLM
, AT
,HASH
,DLR
,PERC
, CIRC
,AMPR
,ASTR
,LPRN
,RPRN
, ,
103 //|----+----+----+----+----+----| |----+----+----+----+----+----|
104 DEL
,MPRV
,MNXT
,VOLU
,PGUP
,UNDS
, EQL
,HOME
, , , ,BSLS
,
105 //|----+----+----+----+----+----| |----+----+----+----+----+----|
106 MUTE
,MSTP
,MPLY
,VOLD
,PGDN
,MINS
, PLUS
,END
, , , , ,
107 //|----+----+----+----+----+----| |----+----+----+----+----+----|
108 , , , , , , , , , , ,
109 //`----+----+----+----+----+----' `----+----+----+----+----+----'
113 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
114 F12
, F1
, F2
, F3
, F4
, F5
, F6
, F7
, F8
, F9
,F10
,F11
,
115 //|----+----+----+----+----+----| |----+----+----+----+----+----|
116 , , , , , , , , , , , ,
117 //|----+----+----+----+----+----| |----+----+----+----+----+----|
118 , , , , , , , , , , , ,
119 //|----+----+----+----+----+----| |----+----+----+----+----+----|
120 , , , , , , , , , , , ,
121 //|----+----+----+----+----+----| |----+----+----+----+----+----|
122 , , , , , , , , , , ,
123 //`----+----+----+----+----+----' `----+----+----+----+----+----'
126 /* Adjust (Lower + Raise)
127 * ,-----------------------------------------------------------------------------------.
128 * | | Reset|RGB Tg|RGB Md|Hue Up|Hue Dn|Sat Up|Sat Dn|Val Up|Val Dn| | |
129 * |------+------+------+------+------+-------------+------+------+------+------+------|
130 * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
131 * |------+------+------+------+------+------|------+------+------+------+------+------|
132 * | | | | | | | | | | | | |
133 * |------+------+------+------+------+------+------+------+------+------+------+------|
134 * | | | | | | | | | | | |
135 * `-----------------------------------------------------------------------------------'
137 [_ADJUST
] = LAYOUT( \
138 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, \
139 _______
, RESET
, RGB_TOG
, RGB_MOD
, RGB_HUD
, RGB_HUI
, RGB_SAD
, RGB_SAI
, RGB_VAD
, RGB_VAI
, _______
, _______
, \
140 _______
, _______
, _______
, AU_ON
, AU_OFF
, AG_NORM
, AG_SWAP
, QWERTY
, COLEMAK
, DVORAK
, _______
, _______
, \
141 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, \
142 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______ \
149 float tone_qwerty
[][2] = SONG(QWERTY_SOUND
);
150 float tone_dvorak
[][2] = SONG(DVORAK_SOUND
);
151 float tone_colemak
[][2] = SONG(COLEMAK_SOUND
);
154 void persistent_default_layer_set(uint16_t default_layer
) {
155 eeconfig_update_default_layer(default_layer
);
156 default_layer_set(default_layer
);
159 bool process_record_user(uint16_t keycode
, keyrecord_t
*record
) {
162 if (record
->event
.pressed
) {
164 PLAY_SONG(tone_qwerty
);
166 persistent_default_layer_set(1UL<<_QWERTY
);
171 if (record
->event
.pressed
) {
173 PLAY_SONG(tone_colemak
);
175 persistent_default_layer_set(1UL<<_COLEMAK
);
180 if (record
->event
.pressed
) {
182 PLAY_SONG(tone_dvorak
);
184 persistent_default_layer_set(1UL<<_DVORAK
);
189 if (record
->event
.pressed
) {
191 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
194 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
199 if (record
->event
.pressed
) {
201 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
204 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
209 if (record
->event
.pressed
) {