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)
39 #define KC_BL_S BL_STEP
41 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
43 [_QWERTY
] = LAYOUT_kc(
44 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
45 ESC
, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC
,
46 //|----+----+----+----+----+----| |----+----+----+----+----+----|
47 TAB
, Q
, W
, E
, R
, T
, Y
, U
, I
, O
, P
,MINS
,
48 //|----+----+----+----+----+----| |----+----+----+----+----+----|
49 X0
, A
, S
, D
, F
, G
, H
, J
, K
, L
,SCLN
,QUOT
,
50 //|----+----+----+----+----+----| |----+----+----+----+----+----|
51 LSFT
, Z
, X
, C
, V
, B
, N
, M
,COMM
,DOT
,SLSH
, X4
,
52 //|----+----+----+----+----+----| |----+----+----+----+----+----|
53 X3
,LCTL
,LALT
,LGUI
, X1
,SPC
, BSPC
, X2
,LEFT
,DOWN
, UP
,RGHT
54 //`----+----+----+----+----+----' `----+----+----+----+----+----'
57 [_COLEMAK
] = LAYOUT_kc(
58 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
59 ESC
, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC
,
60 //|----+----+----+----+----+----| |----+----+----+----+----+----|
61 TAB
, Q
, W
, F
, P
, G
, J
, L
, U
, Y
,SCLN
,MINS
,
62 //|----+----+----+----+----+----| |----+----+----+----+----+----|
63 X0
, A
, R
, S
, T
, D
, H
, N
, E
, I
, O
,QUOT
,
64 //|----+----+----+----+----+----| |----+----+----+----+----+----|
65 LSFT
, Z
, X
, C
, V
, B
, K
, M
,COMM
,DOT
,SLSH
, X4
,
66 //|----+----+----+----+----+----| |----+----+----+----+----+----|
67 X3
,LCTL
,LALT
,LGUI
, X1
,SPC
, BSPC
, X2
,LEFT
,DOWN
, UP
,RGHT
68 //`----+----+----+----+----+----' `----+----+----+----+----+----'
71 [_DVORAK
] = LAYOUT_kc(
72 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
73 ESC
, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC
,
74 //|----+----+----+----+----+----| |----+----+----+----+----+----|
75 TAB
,QUOT
,COMM
,DOT
, P
, Y
, F
, G
, C
, R
, L
,MINS
,
76 //|----+----+----+----+----+----| |----+----+----+----+----+----|
77 X0
, A
, O
, E
, U
, I
, D
, H
, T
, N
, S
,SLSH
,
78 //|----+----+----+----+----+----| |----+----+----+----+----+----|
79 LSFT
,SCLN
, Q
, J
, K
, X
, B
, M
, W
, V
, Z
, X4
,
80 //|----+----+----+----+----+----| |----+----+----+----+----+----|
81 X3
,LCTL
,LALT
,LGUI
, X1
,SPC
, BSPC
, X2
,LEFT
,DOWN
, UP
,RGHT
82 //`----+----+----+----+----+----' `----+----+----+----+----+----'
86 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
87 TILD
,EXLM
, AT
,HASH
,DLR
,PERC
, CIRC
,AMPR
,ASTR
,LPRN
,RPRN
,BSPC
,
88 //|----+----+----+----+----+----| |----+----+----+----+----+----|
89 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , ,
90 //|----+----+----+----+----+----| |----+----+----+----+----+----|
91 DEL
,CAPP
,LEFT
,RGHT
, UP
,LBRC
, RBRC
, P4
, P5
, P6
,PLUS
,PIPE
,
92 //|----+----+----+----+----+----| |----+----+----+----+----+----|
93 ,CPYP
, , ,DOWN
,LCBR
, RCBR
, P1
, P2
, P3
,MINS
, ,
94 //|----+----+----+----+----+----| |----+----+----+----+----+----|
95 BL_S
, , , , , , DEL
, , P0
,PDOT
, ,
96 //`----+----+----+----+----+----' `----+----+----+----+----+----'
100 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
101 TILD
,EXLM
, AT
,HASH
,DLR
,PERC
, CIRC
,AMPR
,ASTR
,LPRN
,RPRN
,BSPC
,
102 //|----+----+----+----+----+----| |----+----+----+----+----+----|
103 ,EXLM
, AT
,HASH
,DLR
,PERC
, CIRC
,AMPR
,ASTR
,LPRN
,RPRN
, ,
104 //|----+----+----+----+----+----| |----+----+----+----+----+----|
105 DEL
,MPRV
,MNXT
,VOLU
,PGUP
,UNDS
, EQL
,HOME
, , , ,BSLS
,
106 //|----+----+----+----+----+----| |----+----+----+----+----+----|
107 MUTE
,MSTP
,MPLY
,VOLD
,PGDN
,MINS
, PLUS
,END
, , , , ,
108 //|----+----+----+----+----+----| |----+----+----+----+----+----|
109 , , , , , , , , , , ,
110 //`----+----+----+----+----+----' `----+----+----+----+----+----'
114 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
115 F12
, F1
, F2
, F3
, F4
, F5
, F6
, F7
, F8
, F9
,F10
,F11
,
116 //|----+----+----+----+----+----| |----+----+----+----+----+----|
117 , , , , , , , , , , , ,
118 //|----+----+----+----+----+----| |----+----+----+----+----+----|
119 , , , , , , , , , , , ,
120 //|----+----+----+----+----+----| |----+----+----+----+----+----|
121 , , , , , , , , , , , ,
122 //|----+----+----+----+----+----| |----+----+----+----+----+----|
123 , , , , , , , , , , ,
124 //`----+----+----+----+----+----' `----+----+----+----+----+----'
127 /* Adjust (Lower + Raise)
128 * ,-----------------------------------------------------------------------------------.
129 * | | Reset|RGB Tg|RGB Md|Hue Up|Hue Dn|Sat Up|Sat Dn|Val Up|Val Dn| | |
130 * |------+------+------+------+------+-------------+------+------+------+------+------|
131 * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
132 * |------+------+------+------+------+------|------+------+------+------+------+------|
133 * | | | | | | | | | | | | |
134 * |------+------+------+------+------+------+------+------+------+------+------+------|
135 * | | | | | | | | | | | |
136 * `-----------------------------------------------------------------------------------'
138 [_ADJUST
] = LAYOUT( \
139 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, \
140 _______
, RESET
, RGB_TOG
, RGB_MOD
, RGB_HUD
, RGB_HUI
, RGB_SAD
, RGB_SAI
, RGB_VAD
, RGB_VAI
, _______
, _______
, \
141 _______
, _______
, _______
, AU_ON
, AU_OFF
, AG_NORM
, AG_SWAP
, QWERTY
, COLEMAK
, DVORAK
, _______
, _______
, \
142 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, \
143 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______ \
150 float tone_qwerty
[][2] = SONG(QWERTY_SOUND
);
151 float tone_dvorak
[][2] = SONG(DVORAK_SOUND
);
152 float tone_colemak
[][2] = SONG(COLEMAK_SOUND
);
155 void persistent_default_layer_set(uint16_t default_layer
) {
156 eeconfig_update_default_layer(default_layer
);
157 default_layer_set(default_layer
);
160 bool process_record_user(uint16_t keycode
, keyrecord_t
*record
) {
163 if (record
->event
.pressed
) {
165 PLAY_SONG(tone_qwerty
);
167 persistent_default_layer_set(1UL<<_QWERTY
);
172 if (record
->event
.pressed
) {
174 PLAY_SONG(tone_colemak
);
176 persistent_default_layer_set(1UL<<_COLEMAK
);
181 if (record
->event
.pressed
) {
183 PLAY_SONG(tone_dvorak
);
185 persistent_default_layer_set(1UL<<_DVORAK
);
190 if (record
->event
.pressed
) {
192 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
195 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
200 if (record
->event
.pressed
) {
202 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
205 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
210 if (record
->event
.pressed
) {