summaryrefslogtreecommitdiff
path: root/keyboards/keychron
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/keychron')
-rw-r--r--keyboards/keychron/c1_pro/ansi/rgb/config.h14
-rw-r--r--keyboards/keychron/c1_pro/ansi/rgb/info.json3
-rw-r--r--keyboards/keychron/c1_pro/ansi/rgb/rgb.c2
-rw-r--r--keyboards/keychron/c1_pro/ansi/white/config.h15
-rw-r--r--keyboards/keychron/c1_pro/ansi/white/info.json6
-rw-r--r--keyboards/keychron/c1_pro/ansi/white/white.c2
-rw-r--r--keyboards/keychron/c1_pro/c1_pro.c13
-rw-r--r--keyboards/keychron/c1_pro/config.h10
-rw-r--r--keyboards/keychron/c1_pro/info.json8
-rw-r--r--keyboards/keychron/c2_pro/ansi/rgb/config.h14
-rw-r--r--keyboards/keychron/c2_pro/ansi/rgb/info.json3
-rw-r--r--keyboards/keychron/c2_pro/ansi/rgb/rgb.c2
-rw-r--r--keyboards/keychron/c2_pro/ansi/white/config.h15
-rw-r--r--keyboards/keychron/c2_pro/ansi/white/info.json6
-rw-r--r--keyboards/keychron/c2_pro/ansi/white/white.c2
-rw-r--r--keyboards/keychron/c2_pro/c2_pro.c12
-rw-r--r--keyboards/keychron/c2_pro/config.h10
-rw-r--r--keyboards/keychron/c2_pro/info.json8
-rw-r--r--keyboards/keychron/q0/base/base.c2
-rw-r--r--keyboards/keychron/q0/base/config.h3
-rw-r--r--keyboards/keychron/q0/config.h6
-rw-r--r--keyboards/keychron/q0/info.json3
-rw-r--r--keyboards/keychron/q0/plus/config.h3
-rw-r--r--keyboards/keychron/q0/plus/plus.c2
-rw-r--r--keyboards/keychron/q10/ansi_encoder/ansi_encoder.c2
-rw-r--r--keyboards/keychron/q10/ansi_encoder/config.h5
-rw-r--r--keyboards/keychron/q10/ansi_encoder/info.json3
-rw-r--r--keyboards/keychron/q10/config.h65
-rw-r--r--keyboards/keychron/q10/info.json37
-rw-r--r--keyboards/keychron/q10/iso_encoder/config.h5
-rw-r--r--keyboards/keychron/q10/iso_encoder/info.json3
-rw-r--r--keyboards/keychron/q10/iso_encoder/iso_encoder.c2
-rw-r--r--keyboards/keychron/q10/q10.c9
-rwxr-xr-xkeyboards/keychron/q11/ansi_encoder/ansi_encoder.c2
-rwxr-xr-xkeyboards/keychron/q11/ansi_encoder/config.h3
-rwxr-xr-xkeyboards/keychron/q11/config.h25
-rwxr-xr-xkeyboards/keychron/q11/info.json14
-rwxr-xr-xkeyboards/keychron/q11/iso_encoder/config.h3
-rwxr-xr-xkeyboards/keychron/q11/iso_encoder/iso_encoder.c2
-rwxr-xr-xkeyboards/keychron/q11/q11.c19
-rw-r--r--keyboards/keychron/q12/ansi_encoder/ansi_encoder.c2
-rw-r--r--keyboards/keychron/q12/ansi_encoder/config.h5
-rw-r--r--keyboards/keychron/q12/ansi_encoder/info.json3
-rw-r--r--keyboards/keychron/q12/config.h69
-rw-r--r--keyboards/keychron/q12/info.json32
-rw-r--r--keyboards/keychron/q12/iso_encoder/config.h5
-rw-r--r--keyboards/keychron/q12/iso_encoder/info.json3
-rw-r--r--keyboards/keychron/q12/iso_encoder/iso_encoder.c2
-rw-r--r--keyboards/keychron/q12/q12.c10
-rw-r--r--keyboards/keychron/q1v1/ansi/ansi.c11
-rw-r--r--keyboards/keychron/q1v1/ansi/config.h3
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/gtg465x/README.md21
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/gtg465x/config.h25
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap.c70
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap_user.h28
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.c72
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.h24
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rules.mk6
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/mkillewald/config.h23
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap.c153
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap_user.h33
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/mkillewald/readme.md54
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.c84
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.h26
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rules.mk6
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/config.h32
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap.c67
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap_user.h48
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/readme.md13
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.c92
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.h25
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/rules.mk14
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.c50
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.h23
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.c49
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.h38
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_user.c28
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.c50
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.h23
-rw-r--r--keyboards/keychron/q1v1/ansi_encoder/ansi_encoder.c11
-rw-r--r--keyboards/keychron/q1v1/ansi_encoder/config.h3
-rw-r--r--keyboards/keychron/q1v1/config.h12
-rw-r--r--keyboards/keychron/q1v1/info.json10
-rw-r--r--keyboards/keychron/q1v1/iso/config.h3
-rw-r--r--keyboards/keychron/q1v1/iso/iso.c11
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/kubahorak/README.md16
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/kubahorak/config.h25
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap.c66
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap_user.h28
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.c76
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.h24
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/kubahorak/rules.mk6
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/config.h2
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/victorsavu3/config.h69
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/victorsavu3/keymap.c146
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/victorsavu3/readme.md4
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/victorsavu3/rules.mk3
-rw-r--r--keyboards/keychron/q1v1/iso_encoder/config.h3
-rw-r--r--keyboards/keychron/q1v1/iso_encoder/iso_encoder.c11
-rw-r--r--keyboards/keychron/q1v2/ansi/ansi.c2
-rw-r--r--keyboards/keychron/q1v2/ansi/config.h5
-rw-r--r--keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c2
-rw-r--r--keyboards/keychron/q1v2/ansi_encoder/config.h5
-rw-r--r--keyboards/keychron/q1v2/config.h22
-rw-r--r--keyboards/keychron/q1v2/info.json11
-rw-r--r--keyboards/keychron/q1v2/iso/config.h5
-rw-r--r--keyboards/keychron/q1v2/iso/iso.c2
-rw-r--r--keyboards/keychron/q1v2/iso_encoder/config.h5
-rw-r--r--keyboards/keychron/q1v2/iso_encoder/iso_encoder.c2
-rw-r--r--keyboards/keychron/q1v2/jis/config.h5
-rw-r--r--keyboards/keychron/q1v2/jis/jis.c2
-rw-r--r--keyboards/keychron/q1v2/jis_encoder/config.h5
-rw-r--r--keyboards/keychron/q1v2/jis_encoder/jis_encoder.c2
-rw-r--r--keyboards/keychron/q1v2/q1v2.c9
-rw-r--r--keyboards/keychron/q2/ansi/ansi.c2
-rw-r--r--keyboards/keychron/q2/ansi/config.h3
-rw-r--r--keyboards/keychron/q2/ansi/keymaps/ladduro/config.h25
-rw-r--r--keyboards/keychron/q2/ansi/keymaps/ladduro/keymap.c68
-rw-r--r--keyboards/keychron/q2/ansi/keymaps/ladduro/keymap_user.h27
-rw-r--r--keyboards/keychron/q2/ansi/keymaps/ladduro/readme.md29
-rw-r--r--keyboards/keychron/q2/ansi/keymaps/ladduro/rgb_matrix_user.c73
-rw-r--r--keyboards/keychron/q2/ansi/keymaps/ladduro/rgb_matrix_user.h25
-rw-r--r--keyboards/keychron/q2/ansi/keymaps/ladduro/rules.mk5
-rw-r--r--keyboards/keychron/q2/ansi_encoder/ansi_encoder.c2
-rw-r--r--keyboards/keychron/q2/ansi_encoder/config.h3
-rw-r--r--keyboards/keychron/q2/config.h12
-rw-r--r--keyboards/keychron/q2/info.json6
-rw-r--r--keyboards/keychron/q2/iso/config.h3
-rw-r--r--keyboards/keychron/q2/iso/iso.c2
-rw-r--r--keyboards/keychron/q2/iso_encoder/config.h3
-rw-r--r--keyboards/keychron/q2/iso_encoder/iso_encoder.c2
-rw-r--r--keyboards/keychron/q2/jis/jis.c2
-rw-r--r--keyboards/keychron/q2/jis_encoder/jis_encoder.c2
-rw-r--r--keyboards/keychron/q2/q2.c8
-rw-r--r--keyboards/keychron/q3/ansi/ansi.c2
-rw-r--r--keyboards/keychron/q3/ansi/config.h3
-rw-r--r--keyboards/keychron/q3/ansi_encoder/ansi_encoder.c2
-rw-r--r--keyboards/keychron/q3/ansi_encoder/config.h3
-rw-r--r--keyboards/keychron/q3/config.h12
-rw-r--r--keyboards/keychron/q3/info.json6
-rw-r--r--keyboards/keychron/q3/iso/config.h3
-rw-r--r--keyboards/keychron/q3/iso/iso.c2
-rw-r--r--keyboards/keychron/q3/iso_encoder/config.h3
-rw-r--r--keyboards/keychron/q3/iso_encoder/iso_encoder.c2
-rw-r--r--keyboards/keychron/q3/jis/config.h3
-rw-r--r--keyboards/keychron/q3/jis/jis.c2
-rw-r--r--keyboards/keychron/q3/jis_encoder/config.h3
-rw-r--r--keyboards/keychron/q3/jis_encoder/jis_encoder.c2
-rw-r--r--keyboards/keychron/q3/q3.c13
-rw-r--r--keyboards/keychron/q4/ansi/v1/config.h3
-rw-r--r--keyboards/keychron/q4/ansi/v1/v1.c2
-rw-r--r--keyboards/keychron/q4/ansi/v2/config.h3
-rw-r--r--keyboards/keychron/q4/ansi/v2/v2.c2
-rw-r--r--keyboards/keychron/q4/config.h12
-rw-r--r--keyboards/keychron/q4/info.json6
-rw-r--r--keyboards/keychron/q4/iso/config.h3
-rw-r--r--keyboards/keychron/q4/iso/iso.c2
-rw-r--r--keyboards/keychron/q4/q4.c8
-rw-r--r--keyboards/keychron/q5/ansi/ansi.c34
-rw-r--r--keyboards/keychron/q5/ansi/config.h7
-rw-r--r--keyboards/keychron/q5/ansi/info.json121
-rw-r--r--keyboards/keychron/q5/ansi/rules.mk17
-rw-r--r--keyboards/keychron/q5/ansi_encoder/ansi_encoder.c34
-rw-r--r--keyboards/keychron/q5/ansi_encoder/config.h10
-rw-r--r--keyboards/keychron/q5/ansi_encoder/info.json128
-rw-r--r--keyboards/keychron/q5/ansi_encoder/rules.mk18
-rw-r--r--keyboards/keychron/q5/config.h69
-rw-r--r--keyboards/keychron/q5/info.json57
-rw-r--r--keyboards/keychron/q5/iso/config.h7
-rw-r--r--keyboards/keychron/q5/iso/info.json126
-rw-r--r--keyboards/keychron/q5/iso/iso.c34
-rw-r--r--keyboards/keychron/q5/iso/rules.mk17
-rw-r--r--keyboards/keychron/q5/iso_encoder/config.h10
-rw-r--r--keyboards/keychron/q5/iso_encoder/info.json129
-rw-r--r--keyboards/keychron/q5/iso_encoder/iso_encoder.c34
-rw-r--r--keyboards/keychron/q5/iso_encoder/rules.mk18
-rw-r--r--keyboards/keychron/q5/q5.c9
-rw-r--r--keyboards/keychron/q5/readme.md16
-rw-r--r--keyboards/keychron/q6/ansi/ansi.c2
-rw-r--r--keyboards/keychron/q6/ansi/config.h5
-rw-r--r--keyboards/keychron/q6/ansi/info.json3
-rw-r--r--keyboards/keychron/q6/ansi_encoder/ansi_encoder.c2
-rw-r--r--keyboards/keychron/q6/ansi_encoder/config.h5
-rw-r--r--keyboards/keychron/q6/ansi_encoder/info.json3
-rw-r--r--keyboards/keychron/q6/config.h65
-rw-r--r--keyboards/keychron/q6/info.json37
-rw-r--r--keyboards/keychron/q6/iso/config.h5
-rw-r--r--keyboards/keychron/q6/iso/info.json3
-rw-r--r--keyboards/keychron/q6/iso/iso.c2
-rw-r--r--keyboards/keychron/q6/iso_encoder/config.h5
-rw-r--r--keyboards/keychron/q6/iso_encoder/info.json3
-rw-r--r--keyboards/keychron/q6/iso_encoder/iso_encoder.c2
-rw-r--r--keyboards/keychron/q6/q6.c9
-rw-r--r--keyboards/keychron/q60/ansi/ansi.c2
-rw-r--r--keyboards/keychron/q60/ansi/config.h20
-rw-r--r--keyboards/keychron/q60/ansi/info.json3
-rw-r--r--keyboards/keychron/q60/config.h65
-rw-r--r--keyboards/keychron/q60/info.json37
-rw-r--r--keyboards/keychron/q60/q60.c8
-rw-r--r--keyboards/keychron/q65/ansi_encoder/ansi_encoder.c2
-rw-r--r--keyboards/keychron/q65/ansi_encoder/config.h5
-rw-r--r--keyboards/keychron/q65/ansi_encoder/info.json3
-rw-r--r--keyboards/keychron/q65/config.h65
-rw-r--r--keyboards/keychron/q65/info.json37
-rw-r--r--keyboards/keychron/q65/q65.c8
-rw-r--r--keyboards/keychron/q7/ansi/ansi.c31
-rw-r--r--keyboards/keychron/q7/ansi/config.h5
-rw-r--r--keyboards/keychron/q7/ansi/info.json100
-rw-r--r--keyboards/keychron/q7/ansi/rules.mk15
-rw-r--r--keyboards/keychron/q7/config.h67
-rw-r--r--keyboards/keychron/q7/info.json64
-rw-r--r--keyboards/keychron/q7/iso/config.h5
-rw-r--r--keyboards/keychron/q7/iso/info.json100
-rw-r--r--keyboards/keychron/q7/iso/iso.c31
-rw-r--r--keyboards/keychron/q7/iso/rules.mk15
-rw-r--r--keyboards/keychron/q7/q7.c8
-rw-r--r--keyboards/keychron/q7/readme.md10
-rw-r--r--keyboards/keychron/q8/ansi/ansi.c31
-rw-r--r--keyboards/keychron/q8/ansi/config.h5
-rw-r--r--keyboards/keychron/q8/ansi/info.json96
-rw-r--r--keyboards/keychron/q8/ansi/rules.mk15
-rw-r--r--keyboards/keychron/q8/ansi_encoder/ansi_encoder.c31
-rw-r--r--keyboards/keychron/q8/ansi_encoder/config.h8
-rw-r--r--keyboards/keychron/q8/ansi_encoder/info.json104
-rw-r--r--keyboards/keychron/q8/ansi_encoder/rules.mk16
-rw-r--r--keyboards/keychron/q8/config.h67
-rw-r--r--keyboards/keychron/q8/info.json64
-rw-r--r--keyboards/keychron/q8/iso/config.h5
-rw-r--r--keyboards/keychron/q8/iso/info.json98
-rw-r--r--keyboards/keychron/q8/iso/iso.c31
-rw-r--r--keyboards/keychron/q8/iso/rules.mk15
-rw-r--r--keyboards/keychron/q8/iso_encoder/config.h8
-rw-r--r--keyboards/keychron/q8/iso_encoder/info.json104
-rw-r--r--keyboards/keychron/q8/iso_encoder/iso_encoder.c31
-rw-r--r--keyboards/keychron/q8/iso_encoder/rules.mk16
-rw-r--r--keyboards/keychron/q8/q8.c8
-rw-r--r--keyboards/keychron/q8/readme.md14
-rw-r--r--keyboards/keychron/q9/ansi/ansi.c28
-rw-r--r--keyboards/keychron/q9/ansi/config.h4
-rw-r--r--keyboards/keychron/q9/ansi/info.json79
-rw-r--r--keyboards/keychron/q9/ansi/rules.mk15
-rw-r--r--keyboards/keychron/q9/ansi_encoder/ansi_encoder.c28
-rw-r--r--keyboards/keychron/q9/ansi_encoder/config.h7
-rw-r--r--keyboards/keychron/q9/ansi_encoder/info.json85
-rw-r--r--keyboards/keychron/q9/ansi_encoder/rules.mk17
-rw-r--r--keyboards/keychron/q9/config.h68
-rw-r--r--keyboards/keychron/q9/info.json64
-rw-r--r--keyboards/keychron/q9/iso/config.h4
-rw-r--r--keyboards/keychron/q9/iso/info.json80
-rw-r--r--keyboards/keychron/q9/iso/iso.c28
-rw-r--r--keyboards/keychron/q9/iso/rules.mk15
-rw-r--r--keyboards/keychron/q9/iso_encoder/config.h7
-rw-r--r--keyboards/keychron/q9/iso_encoder/info.json88
-rw-r--r--keyboards/keychron/q9/iso_encoder/iso_encoder.c28
-rw-r--r--keyboards/keychron/q9/iso_encoder/rules.mk17
-rw-r--r--keyboards/keychron/q9/q9.c7
-rw-r--r--keyboards/keychron/q9/readme.md16
-rwxr-xr-xkeyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c2
-rwxr-xr-xkeyboards/keychron/q9_plus/ansi_encoder/config.h3
-rwxr-xr-xkeyboards/keychron/q9_plus/config.h19
-rwxr-xr-xkeyboards/keychron/q9_plus/info.json11
-rwxr-xr-xkeyboards/keychron/q9_plus/q9_plus.c7
-rw-r--r--keyboards/keychron/s1/ansi/rgb/config.h58
-rw-r--r--keyboards/keychron/s1/ansi/rgb/info.json26
-rw-r--r--keyboards/keychron/s1/ansi/rgb/rgb.c2
-rw-r--r--keyboards/keychron/s1/ansi/white/config.h38
-rw-r--r--keyboards/keychron/s1/ansi/white/info.json26
-rw-r--r--keyboards/keychron/s1/ansi/white/white.c2
-rw-r--r--keyboards/keychron/s1/config.h10
-rw-r--r--keyboards/keychron/s1/info.json10
-rw-r--r--keyboards/keychron/s1/s1.c9
-rw-r--r--keyboards/keychron/v1/ansi/ansi.c2
-rw-r--r--keyboards/keychron/v1/ansi/config.h5
-rw-r--r--keyboards/keychron/v1/ansi/info.json3
-rw-r--r--keyboards/keychron/v1/ansi_encoder/ansi_encoder.c2
-rw-r--r--keyboards/keychron/v1/ansi_encoder/config.h5
-rw-r--r--keyboards/keychron/v1/ansi_encoder/info.json3
-rw-r--r--keyboards/keychron/v1/config.h65
-rw-r--r--keyboards/keychron/v1/info.json37
-rw-r--r--keyboards/keychron/v1/iso/config.h5
-rw-r--r--keyboards/keychron/v1/iso/info.json3
-rw-r--r--keyboards/keychron/v1/iso/iso.c2
-rw-r--r--keyboards/keychron/v1/iso_encoder/config.h5
-rw-r--r--keyboards/keychron/v1/iso_encoder/info.json3
-rw-r--r--keyboards/keychron/v1/iso_encoder/iso_encoder.c2
-rw-r--r--keyboards/keychron/v1/jis/config.h5
-rw-r--r--keyboards/keychron/v1/jis/info.json3
-rw-r--r--keyboards/keychron/v1/jis/jis.c2
-rw-r--r--keyboards/keychron/v1/jis_encoder/config.h5
-rw-r--r--keyboards/keychron/v1/jis_encoder/info.json3
-rw-r--r--keyboards/keychron/v1/jis_encoder/jis_encoder.c2
-rw-r--r--keyboards/keychron/v1/v1.c9
-rw-r--r--keyboards/keychron/v10/ansi_encoder/ansi_encoder.c2
-rw-r--r--keyboards/keychron/v10/ansi_encoder/config.h5
-rw-r--r--keyboards/keychron/v10/ansi_encoder/info.json3
-rw-r--r--keyboards/keychron/v10/config.h65
-rw-r--r--keyboards/keychron/v10/info.json37
-rw-r--r--keyboards/keychron/v10/iso_encoder/config.h5
-rw-r--r--keyboards/keychron/v10/iso_encoder/info.json3
-rw-r--r--keyboards/keychron/v10/iso_encoder/iso_encoder.c2
-rw-r--r--keyboards/keychron/v10/v10.c9
-rw-r--r--keyboards/keychron/v2/ansi/ansi.c2
-rw-r--r--keyboards/keychron/v2/ansi/config.h5
-rw-r--r--keyboards/keychron/v2/ansi/info.json3
-rw-r--r--keyboards/keychron/v2/ansi_encoder/ansi_encoder.c2
-rw-r--r--keyboards/keychron/v2/ansi_encoder/config.h5
-rw-r--r--keyboards/keychron/v2/ansi_encoder/info.json3
-rw-r--r--keyboards/keychron/v2/config.h65
-rw-r--r--keyboards/keychron/v2/info.json37
-rw-r--r--keyboards/keychron/v2/iso/config.h5
-rw-r--r--keyboards/keychron/v2/iso/info.json3
-rw-r--r--keyboards/keychron/v2/iso/iso.c2
-rw-r--r--keyboards/keychron/v2/iso_encoder/config.h5
-rw-r--r--keyboards/keychron/v2/iso_encoder/info.json3
-rw-r--r--keyboards/keychron/v2/iso_encoder/iso_encoder.c2
-rw-r--r--keyboards/keychron/v2/jis/config.h5
-rw-r--r--keyboards/keychron/v2/jis/info.json3
-rw-r--r--keyboards/keychron/v2/jis/jis.c2
-rw-r--r--keyboards/keychron/v2/jis_encoder/config.h5
-rw-r--r--keyboards/keychron/v2/jis_encoder/info.json3
-rw-r--r--keyboards/keychron/v2/jis_encoder/jis_encoder.c2
-rw-r--r--keyboards/keychron/v2/v2.c8
-rw-r--r--keyboards/keychron/v3/ansi/ansi.c2
-rw-r--r--keyboards/keychron/v3/ansi/config.h5
-rw-r--r--keyboards/keychron/v3/ansi/info.json3
-rw-r--r--keyboards/keychron/v3/ansi_encoder/ansi_encoder.c2
-rw-r--r--keyboards/keychron/v3/ansi_encoder/config.h5
-rw-r--r--keyboards/keychron/v3/ansi_encoder/info.json3
-rw-r--r--keyboards/keychron/v3/config.h65
-rw-r--r--keyboards/keychron/v3/info.json37
-rw-r--r--keyboards/keychron/v3/iso/config.h5
-rw-r--r--keyboards/keychron/v3/iso/info.json3
-rw-r--r--keyboards/keychron/v3/iso/iso.c2
-rw-r--r--keyboards/keychron/v3/iso_encoder/config.h5
-rw-r--r--keyboards/keychron/v3/iso_encoder/info.json3
-rw-r--r--keyboards/keychron/v3/iso_encoder/iso_encoder.c2
-rw-r--r--keyboards/keychron/v3/jis/config.h5
-rw-r--r--keyboards/keychron/v3/jis/info.json3
-rw-r--r--keyboards/keychron/v3/jis/jis.c2
-rw-r--r--keyboards/keychron/v3/jis_encoder/config.h5
-rw-r--r--keyboards/keychron/v3/jis_encoder/info.json3
-rw-r--r--keyboards/keychron/v3/jis_encoder/jis_encoder.c2
-rw-r--r--keyboards/keychron/v3/v3.c13
-rw-r--r--keyboards/keychron/v4/ansi/ansi.c2
-rw-r--r--keyboards/keychron/v4/ansi/config.h4
-rw-r--r--keyboards/keychron/v4/ansi/info.json3
-rw-r--r--keyboards/keychron/v4/config.h65
-rw-r--r--keyboards/keychron/v4/info.json37
-rw-r--r--keyboards/keychron/v4/iso/config.h4
-rw-r--r--keyboards/keychron/v4/iso/info.json3
-rw-r--r--keyboards/keychron/v4/iso/iso.c2
-rw-r--r--keyboards/keychron/v4/v4.c8
-rw-r--r--keyboards/keychron/v5/ansi/ansi.c2
-rw-r--r--keyboards/keychron/v5/ansi/config.h5
-rw-r--r--keyboards/keychron/v5/ansi/info.json3
-rw-r--r--keyboards/keychron/v5/ansi_encoder/ansi_encoder.c2
-rw-r--r--keyboards/keychron/v5/ansi_encoder/config.h5
-rw-r--r--keyboards/keychron/v5/ansi_encoder/info.json3
-rw-r--r--keyboards/keychron/v5/config.h65
-rw-r--r--keyboards/keychron/v5/info.json37
-rw-r--r--keyboards/keychron/v5/iso/config.h5
-rw-r--r--keyboards/keychron/v5/iso/info.json3
-rw-r--r--keyboards/keychron/v5/iso/iso.c2
-rw-r--r--keyboards/keychron/v5/iso_encoder/config.h5
-rw-r--r--keyboards/keychron/v5/iso_encoder/info.json3
-rw-r--r--keyboards/keychron/v5/iso_encoder/iso_encoder.c2
-rw-r--r--keyboards/keychron/v5/v5.c9
-rw-r--r--keyboards/keychron/v6/ansi/ansi.c2
-rw-r--r--keyboards/keychron/v6/ansi/config.h5
-rw-r--r--keyboards/keychron/v6/ansi/info.json3
-rw-r--r--keyboards/keychron/v6/ansi_encoder/ansi_encoder.c2
-rw-r--r--keyboards/keychron/v6/ansi_encoder/config.h5
-rw-r--r--keyboards/keychron/v6/config.h66
-rw-r--r--keyboards/keychron/v6/info.json37
-rw-r--r--keyboards/keychron/v6/iso/config.h5
-rw-r--r--keyboards/keychron/v6/iso/iso.c2
-rw-r--r--keyboards/keychron/v6/iso_encoder/config.h5
-rw-r--r--keyboards/keychron/v6/iso_encoder/iso_encoder.c2
-rw-r--r--keyboards/keychron/v6/v6.c9
-rw-r--r--keyboards/keychron/v7/ansi/ansi.c2
-rw-r--r--keyboards/keychron/v7/ansi/config.h5
-rw-r--r--keyboards/keychron/v7/ansi/info.json3
-rw-r--r--keyboards/keychron/v7/config.h65
-rw-r--r--keyboards/keychron/v7/info.json37
-rw-r--r--keyboards/keychron/v7/iso/config.h5
-rw-r--r--keyboards/keychron/v7/iso/info.json3
-rw-r--r--keyboards/keychron/v7/iso/iso.c2
-rw-r--r--keyboards/keychron/v7/v7.c8
-rw-r--r--keyboards/keychron/v8/ansi/ansi.c2
-rw-r--r--keyboards/keychron/v8/ansi/config.h5
-rw-r--r--keyboards/keychron/v8/ansi/info.json3
-rw-r--r--keyboards/keychron/v8/ansi/rules.mk5
-rw-r--r--keyboards/keychron/v8/ansi_encoder/ansi_encoder.c2
-rw-r--r--keyboards/keychron/v8/ansi_encoder/config.h5
-rw-r--r--keyboards/keychron/v8/ansi_encoder/info.json3
-rw-r--r--keyboards/keychron/v8/ansi_encoder/rules.mk4
-rw-r--r--keyboards/keychron/v8/config.h65
-rw-r--r--keyboards/keychron/v8/info.json37
-rw-r--r--keyboards/keychron/v8/iso/config.h5
-rw-r--r--keyboards/keychron/v8/iso/info.json3
-rw-r--r--keyboards/keychron/v8/iso/iso.c2
-rw-r--r--keyboards/keychron/v8/iso_encoder/config.h5
-rw-r--r--keyboards/keychron/v8/iso_encoder/info.json3
-rw-r--r--keyboards/keychron/v8/iso_encoder/iso_encoder.c2
-rw-r--r--keyboards/keychron/v8/iso_encoder/rules.mk4
-rw-r--r--keyboards/keychron/v8/v8.c8
406 files changed, 2254 insertions, 5237 deletions
diff --git a/keyboards/keychron/c1_pro/ansi/rgb/config.h b/keyboards/keychron/c1_pro/ansi/rgb/config.h
index a88319a63d..c5e293d1df 100644
--- a/keyboards/keychron/c1_pro/ansi/rgb/config.h
+++ b/keyboards/keychron/c1_pro/ansi/rgb/config.h
@@ -23,24 +23,10 @@
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 49
-#define DRIVER_2_LED_TOTAL 39
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
/* Set led driver current */
#define SNLED27351_CURRENT_TUNE \
{ 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 }
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
/* Enable caps_lock, win os and mac os indicator */
#define CAPS_MAC_WIN_LED_INDEX 63
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/keychron/c1_pro/ansi/rgb/info.json b/keyboards/keychron/c1_pro/ansi/rgb/info.json
index fcd805706b..64d45e3595 100644
--- a/keyboards/keychron/c1_pro/ansi/rgb/info.json
+++ b/keyboards/keychron/c1_pro/ansi/rgb/info.json
@@ -224,6 +224,7 @@
{"matrix":[5, 14], "flags":1, "x":198, "y":64},
{"matrix":[5, 15], "flags":1, "x":211, "y":64},
{"matrix":[4, 14], "flags":1, "x":224, "y":64}
- ]
+ ],
+ "sleep": true
}
}
diff --git a/keyboards/keychron/c1_pro/ansi/rgb/rgb.c b/keyboards/keychron/c1_pro/ansi/rgb/rgb.c
index c04e82a44e..38d4a96d3e 100644
--- a/keyboards/keychron/c1_pro/ansi/rgb/rgb.c
+++ b/keyboards/keychron/c1_pro/ansi/rgb/rgb.c
@@ -18,7 +18,7 @@
// clang-format off
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/c1_pro/ansi/white/config.h b/keyboards/keychron/c1_pro/ansi/white/config.h
index a8a836c5dd..2db91f7053 100644
--- a/keyboards/keychron/c1_pro/ansi/white/config.h
+++ b/keyboards/keychron/c1_pro/ansi/white/config.h
@@ -21,26 +21,11 @@
/* LED Matrix Driver Configuration */
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
-
-/* LED Matrix Configuration */
-#define LED_MATRIX_LED_COUNT 90
-
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
-/* Set led driver current */
#define SNLED27351_CURRENT_TUNE \
{ 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 }
-/* turn off effects when suspended */
-#define LED_DISABLE_WHEN_USB_SUSPENDED
-
/* Enbale caps_lcok, win os and mac os indicator */
#define CAPS_LOCK_LED_INDEX 63
#define MAC_LOCK_LED_INDEX 64
#define WIN_LOCK_LED_INDEX 65
-
-// LED Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_led_matrix?id=led-matrix-effects
-// #if defined(LED_MATRIX_KEYPRESSES) || defined(LED_MATRIX_KEYRELEASES)
-#define LED_MATRIX_KEYPRESSES
-#define LED_MATRIX_KEYRELEASES
diff --git a/keyboards/keychron/c1_pro/ansi/white/info.json b/keyboards/keychron/c1_pro/ansi/white/info.json
index 4a6c6e2b8d..c64183a739 100644
--- a/keyboards/keychron/c1_pro/ansi/white/info.json
+++ b/keyboards/keychron/c1_pro/ansi/white/info.json
@@ -107,8 +107,6 @@
"led_matrix": {
"driver": "snled27351",
"animations": {
- "none": true,
- "solid": true,
"breathing": true,
"band_pinwheel": true,
"band_spiral": true,
@@ -221,6 +219,8 @@
{"matrix":[5, 14], "flags":1, "x":198, "y":64},
{"matrix":[5, 15], "flags":1, "x":211, "y":64},
{"matrix":[3, 15], "flags":1, "x":224, "y":64}
- ]
+ ],
+ "sleep": true,
+ "react_on_keyup": true
}
}
diff --git a/keyboards/keychron/c1_pro/ansi/white/white.c b/keyboards/keychron/c1_pro/ansi/white/white.c
index 15f291e80c..d7b75e0dd6 100644
--- a/keyboards/keychron/c1_pro/ansi/white/white.c
+++ b/keyboards/keychron/c1_pro/ansi/white/white.c
@@ -18,7 +18,7 @@
// clang-format off
#ifdef LED_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | LED address
diff --git a/keyboards/keychron/c1_pro/c1_pro.c b/keyboards/keychron/c1_pro/c1_pro.c
index 607cd958ad..178dca8121 100644
--- a/keyboards/keychron/c1_pro/c1_pro.c
+++ b/keyboards/keychron/c1_pro/c1_pro.c
@@ -16,19 +16,6 @@
#include "quantum.h"
-// clang-format off
-
-const matrix_row_t matrix_mask[] = {
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111101111,
-};
-
-// clang-format on
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/c1_pro/config.h b/keyboards/keychron/c1_pro/config.h
index 2d81490471..f553399f4b 100644
--- a/keyboards/keychron/c1_pro/config.h
+++ b/keyboards/keychron/c1_pro/config.h
@@ -16,16 +16,6 @@
#pragma once
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { { 5, 4 } }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
#define I2C1_TIMINGR_SCLDEL 3U
diff --git a/keyboards/keychron/c1_pro/info.json b/keyboards/keychron/c1_pro/info.json
index 9c9b4bf16f..e40c2b9960 100644
--- a/keyboards/keychron/c1_pro/info.json
+++ b/keyboards/keychron/c1_pro/info.json
@@ -8,6 +8,11 @@
"usb": {
"vid": "0x3434"
},
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"features": {
"bootmagic": true,
"command": false,
@@ -17,6 +22,9 @@
"mousekey": true,
"nkro": true
},
+ "dip_switch": {
+ "matrix_grid": [ [5, 4] ]
+ },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "H3"],
"rows": ["B5", "B4", "B3", "A15", "A14", "A13"]
diff --git a/keyboards/keychron/c2_pro/ansi/rgb/config.h b/keyboards/keychron/c2_pro/ansi/rgb/config.h
index 47b47b920d..64dc7e8716 100644
--- a/keyboards/keychron/c2_pro/ansi/rgb/config.h
+++ b/keyboards/keychron/c2_pro/ansi/rgb/config.h
@@ -24,22 +24,8 @@
#define SNLED27351_CURRENT_TUNE \
{ 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0x56 }
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 60
-#define DRIVER_2_LED_TOTAL 48
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable indicator LED*/
#define NUM_LED_INDEX 16
#define CAPS_LED_INDEX 17
#define MAC_LED_INDEX 18
#define WIN_LED_INDEX 19
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/keychron/c2_pro/ansi/rgb/info.json b/keyboards/keychron/c2_pro/ansi/rgb/info.json
index 1eee0ee1cd..a7d91c56e4 100644
--- a/keyboards/keychron/c2_pro/ansi/rgb/info.json
+++ b/keyboards/keychron/c2_pro/ansi/rgb/info.json
@@ -261,6 +261,7 @@
{"matrix":[5, 16], "flags":1, "x":180, "y":64},
{"matrix":[5, 17], "flags":4, "x":198, "y":64},
{"matrix":[5, 18], "flags":4, "x":214, "y":64}
- ]
+ ],
+ "sleep": true
}
}
diff --git a/keyboards/keychron/c2_pro/ansi/rgb/rgb.c b/keyboards/keychron/c2_pro/ansi/rgb/rgb.c
index d42c2de39e..6fce51417c 100644
--- a/keyboards/keychron/c2_pro/ansi/rgb/rgb.c
+++ b/keyboards/keychron/c2_pro/ansi/rgb/rgb.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/c2_pro/ansi/white/config.h b/keyboards/keychron/c2_pro/ansi/white/config.h
index 26c812ffef..60d004d38e 100644
--- a/keyboards/keychron/c2_pro/ansi/white/config.h
+++ b/keyboards/keychron/c2_pro/ansi/white/config.h
@@ -18,26 +18,11 @@
/* LED Matrix Driver Configuration */
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
-
-/* Set LED driver current */
#define SNLED27351_CURRENT_TUNE \
{ 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0 }
-/* LED Matrix Configuration */
-#define LED_MATRIX_LED_COUNT 108
-
/* Enable indicator LED*/
#define NUM_LED_INDEX 16
#define CAPS_LED_INDEX 17
#define MAC_LED_INDEX 18
#define WIN_LED_INDEX 19
-
-/* turn off effects when suspended */
-#define LED_DISABLE_WHEN_USB_SUSPENDED
-
-// LED Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_led_matrix?id=led-matrix-effects
-// #if defined(LED_MATRIX_KEYPRESSES) || defined(LED_MATRIX_KEYRELEASES)
-#define LED_MATRIX_KEYPRESSES
-#define LED_MATRIX_KEYRELEASES
diff --git a/keyboards/keychron/c2_pro/ansi/white/info.json b/keyboards/keychron/c2_pro/ansi/white/info.json
index 4d9b1e12b8..4c103e966d 100644
--- a/keyboards/keychron/c2_pro/ansi/white/info.json
+++ b/keyboards/keychron/c2_pro/ansi/white/info.json
@@ -124,8 +124,6 @@
"led_matrix": {
"driver": "snled27351",
"animations": {
- "none": true,
- "solid": true,
"breathing": true,
"band_pinwheel": true,
"band_spiral": true,
@@ -256,6 +254,8 @@
{"matrix":[5, 16], "flags":1, "x":180, "y":64},
{"matrix":[5, 17], "flags":4, "x":198, "y":64},
{"matrix":[5, 19], "flags":4, "x":214, "y":64}
- ]
+ ],
+ "sleep": true,
+ "react_on_keyup": true
}
}
diff --git a/keyboards/keychron/c2_pro/ansi/white/white.c b/keyboards/keychron/c2_pro/ansi/white/white.c
index 9c75e73c6d..4bad7187cc 100644
--- a/keyboards/keychron/c2_pro/ansi/white/white.c
+++ b/keyboards/keychron/c2_pro/ansi/white/white.c
@@ -18,7 +18,7 @@
// clang-format off
#ifdef LED_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | LED address
diff --git a/keyboards/keychron/c2_pro/c2_pro.c b/keyboards/keychron/c2_pro/c2_pro.c
index 2cd58ab4d7..593e404997 100644
--- a/keyboards/keychron/c2_pro/c2_pro.c
+++ b/keyboards/keychron/c2_pro/c2_pro.c
@@ -16,18 +16,6 @@
#include "quantum.h"
-// clang-format off
-const matrix_row_t matrix_mask[] = {
- 0b11111111111111111111,
- 0b11111111111111111111,
- 0b11111111111111111111,
- 0b11111111111111111111,
- 0b11111111111111111111,
- 0b11111111111111101111,
-};
-
-// clang-format on
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/c2_pro/config.h b/keyboards/keychron/c2_pro/config.h
index 6971ebd1aa..1ddb0c4006 100644
--- a/keyboards/keychron/c2_pro/config.h
+++ b/keyboards/keychron/c2_pro/config.h
@@ -16,16 +16,6 @@
#pragma once
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { { 5, 4 } }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
#define I2C1_TIMINGR_SCLDEL 3U
diff --git a/keyboards/keychron/c2_pro/info.json b/keyboards/keychron/c2_pro/info.json
index dd97dd7adf..4b11fc213a 100644
--- a/keyboards/keychron/c2_pro/info.json
+++ b/keyboards/keychron/c2_pro/info.json
@@ -8,6 +8,11 @@
"usb": {
"vid": "0x3434"
},
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"features": {
"bootmagic": true,
"command": false,
@@ -17,6 +22,9 @@
"mousekey": true,
"nkro": true
},
+ "dip_switch": {
+ "matrix_grid": [ [5, 4] ]
+ },
"matrix_pins": {
"cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "C14"],
"rows": ["B5", "B4", "B3", "A15", "A14", "A13"],
diff --git a/keyboards/keychron/q0/base/base.c b/keyboards/keychron/q0/base/base.c
index 05803234c0..b977471730 100644
--- a/keyboards/keychron/q0/base/base.c
+++ b/keyboards/keychron/q0/base/base.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q0/base/config.h b/keyboards/keychron/q0/base/config.h
index 1d6c1a6757..61500b272c 100644
--- a/keyboards/keychron/q0/base/config.h
+++ b/keyboards/keychron/q0/base/config.h
@@ -19,8 +19,5 @@
/* RGB Matrix Driver Configuration */
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 21
-
/* Enable num-lock LED */
#define NUM_LOCK_LED_INDEX 4
diff --git a/keyboards/keychron/q0/config.h b/keyboards/keychron/q0/config.h
index 24b629a520..ff142ee597 100644
--- a/keyboards/keychron/q0/config.h
+++ b/keyboards/keychron/q0/config.h
@@ -17,9 +17,3 @@
#pragma once
#define SNLED27351_CURRENT_TUNE { 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70 }
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS \ No newline at end of file
diff --git a/keyboards/keychron/q0/info.json b/keyboards/keychron/q0/info.json
index 70a726c520..a301746831 100644
--- a/keyboards/keychron/q0/info.json
+++ b/keyboards/keychron/q0/info.json
@@ -42,7 +42,8 @@
"splash": true,
"typing_heatmap": true
},
- "driver": "snled27351"
+ "driver": "snled27351",
+ "sleep": true
},
"url": "https://github.com/Keychron",
"usb": {
diff --git a/keyboards/keychron/q0/plus/config.h b/keyboards/keychron/q0/plus/config.h
index 01320b1f31..cbfdc955f8 100644
--- a/keyboards/keychron/q0/plus/config.h
+++ b/keyboards/keychron/q0/plus/config.h
@@ -19,9 +19,6 @@
/* RGB Matrix Driver Configuration */
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 26
-
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
/* Encoder Configuration*/
diff --git a/keyboards/keychron/q0/plus/plus.c b/keyboards/keychron/q0/plus/plus.c
index 0466e1a584..4af7a4572f 100644
--- a/keyboards/keychron/q0/plus/plus.c
+++ b/keyboards/keychron/q0/plus/plus.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c
index a9df1609e0..06947e9d18 100644
--- a/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q10/ansi_encoder/config.h b/keyboards/keychron/q10/ansi_encoder/config.h
index 9012abd4f7..917507abc8 100644
--- a/keyboards/keychron/q10/ansi_encoder/config.h
+++ b/keyboards/keychron/q10/ansi_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 47
-#define DRIVER_2_LED_TOTAL 41
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/q10/ansi_encoder/info.json b/keyboards/keychron/q10/ansi_encoder/info.json
index da2cb106e3..c40c605426 100644
--- a/keyboards/keychron/q10/ansi_encoder/info.json
+++ b/keyboards/keychron/q10/ansi_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x01A1",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
"rotary": [
{"pin_a": "A10", "pin_b": "A8"}
diff --git a/keyboards/keychron/q10/config.h b/keyboards/keychron/q10/config.h
index eb3a56e9ad..4a39a5f762 100644
--- a/keyboards/keychron/q10/config.h
+++ b/keyboards/keychron/q10/config.h
@@ -43,68 +43,3 @@
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
#define SNLED27351_CURRENT_TUNE \
{ 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A }
-
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {5,5} }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* Disable RGB lighting when PC is in suspend */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/keychron/q10/info.json b/keyboards/keychron/q10/info.json
new file mode 100644
index 0000000000..636ef2d9a2
--- /dev/null
+++ b/keyboards/keychron/q10/info.json
@@ -0,0 +1,37 @@
+{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "dip_switch": {
+ "matrix_grid": [ [5, 5] ]
+ },
+ "rgb_matrix": {
+ "animations": {
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ }
+}
diff --git a/keyboards/keychron/q10/iso_encoder/config.h b/keyboards/keychron/q10/iso_encoder/config.h
index 7a5646c56e..f8ea208047 100644
--- a/keyboards/keychron/q10/iso_encoder/config.h
+++ b/keyboards/keychron/q10/iso_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 47
-#define DRIVER_2_LED_TOTAL 42
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/q10/iso_encoder/info.json b/keyboards/keychron/q10/iso_encoder/info.json
index 08e6b2deae..ce5223df61 100644
--- a/keyboards/keychron/q10/iso_encoder/info.json
+++ b/keyboards/keychron/q10/iso_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x01A3",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
"rotary": [
{"pin_a": "A10", "pin_b": "A8"}
diff --git a/keyboards/keychron/q10/iso_encoder/iso_encoder.c b/keyboards/keychron/q10/iso_encoder/iso_encoder.c
index fbe4bca637..2aebd936ec 100644
--- a/keyboards/keychron/q10/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q10/iso_encoder/iso_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q10/q10.c b/keyboards/keychron/q10/q10.c
index 455a2a25f2..754b148175 100644
--- a/keyboards/keychron/q10/q10.c
+++ b/keyboards/keychron/q10/q10.c
@@ -16,15 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111011111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c
index f7acae7add..24b9836b2e 100755
--- a/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q11/ansi_encoder/config.h b/keyboards/keychron/q11/ansi_encoder/config.h
index 60bdc493de..08632f0ce7 100755
--- a/keyboards/keychron/q11/ansi_encoder/config.h
+++ b/keyboards/keychron/q11/ansi_encoder/config.h
@@ -16,8 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 89
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 23
diff --git a/keyboards/keychron/q11/config.h b/keyboards/keychron/q11/config.h
index 0d6b9c9c48..b1b40c98ab 100755
--- a/keyboards/keychron/q11/config.h
+++ b/keyboards/keychron/q11/config.h
@@ -16,16 +16,6 @@
#pragma once
-// Connects each switch in the dip switch to the GPIO pin of the MCU
-#define DIP_SWITCH_PINS \
- { A8 }
-
-/* handedness */
-#define SPLIT_HAND_MATRIX_GRID A2, A15
-#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT
-
-#define MATRIX_MASKED // actual mask is defined by `matrix_mask` in `q11.c`
-
/* RGB Matrix Driver Configuration */
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
@@ -39,21 +29,12 @@
#define SNLED27351_CURRENT_TUNE \
{ 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF } // 300mA
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
/* Split Keyboard specific options. */
#define SERIAL_USART_TX_PIN A9 // USART TX pin
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
-/* Disable RGB lighting when PC is in suspend */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
+// Needed as the master side could enter slave state during poweron
+// of host, due to missing VUSB detection.
+#define SPLIT_WATCHDOG_ENABLE
diff --git a/keyboards/keychron/q11/info.json b/keyboards/keychron/q11/info.json
index f240c70801..db70d2b7b6 100755
--- a/keyboards/keychron/q11/info.json
+++ b/keyboards/keychron/q11/info.json
@@ -11,6 +11,14 @@
"bootmagic": {
"matrix": [0, 1]
},
+ "dip_switch": {
+ "pins": ["A8"]
+ },
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"features": {
"bootmagic": true,
"command": false,
@@ -36,6 +44,9 @@
]
}
},
+ "handedness": {
+ "matrix_grid": ["A2", "A15"]
+ },
"matrix_pins": {
"right": {
"cols": ["A8", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0"],
@@ -84,7 +95,8 @@
"solid_reactive_multinexus": true,
"splash": true,
"solid_splash": true
- }
+ },
+ "sleep": true
},
"layouts": {
"LAYOUT_91_ansi": {
diff --git a/keyboards/keychron/q11/iso_encoder/config.h b/keyboards/keychron/q11/iso_encoder/config.h
index 57baea4c69..08632f0ce7 100755
--- a/keyboards/keychron/q11/iso_encoder/config.h
+++ b/keyboards/keychron/q11/iso_encoder/config.h
@@ -16,8 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 90
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 23
diff --git a/keyboards/keychron/q11/iso_encoder/iso_encoder.c b/keyboards/keychron/q11/iso_encoder/iso_encoder.c
index a2db569710..feedfd17c3 100755
--- a/keyboards/keychron/q11/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q11/iso_encoder/iso_encoder.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q11/q11.c b/keyboards/keychron/q11/q11.c
index bf7bab4b53..f643113ea3 100755
--- a/keyboards/keychron/q11/q11.c
+++ b/keyboards/keychron/q11/q11.c
@@ -16,25 +16,6 @@
#include "quantum.h"
-// Mask out handedness diode to prevent it
-// from keeping the keyboard awake
-// - just mirroring `KC_NO` in the `LAYOUT`
-// macro to keep it simple
-const matrix_row_t matrix_mask[] = {
- 0b011111111,
- 0b011111111,
- 0b011011111,
- 0b001111111,
- 0b011111111,
- 0b001011111,
- 0b111111111,
- 0b101111111,
- 0b111111111,
- 0b110111111,
- 0b010111111,
- 0b111011110,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
if (!dip_switch_update_user(index, active)) {
diff --git a/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c
index 350da52661..e2acddd894 100644
--- a/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q12/ansi_encoder/config.h b/keyboards/keychron/q12/ansi_encoder/config.h
index 56a1f7505f..a016f282d8 100644
--- a/keyboards/keychron/q12/ansi_encoder/config.h
+++ b/keyboards/keychron/q12/ansi_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 56
-#define DRIVER_2_LED_TOTAL 46
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
#define ENCODER_DEFAULT_POS 0x3
/* Enable caps-lock LED */
diff --git a/keyboards/keychron/q12/ansi_encoder/info.json b/keyboards/keychron/q12/ansi_encoder/info.json
index 291fd1774c..7b1e46beb7 100644
--- a/keyboards/keychron/q12/ansi_encoder/info.json
+++ b/keyboards/keychron/q12/ansi_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x01D1",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
"rotary": [
{"pin_a": "A2", "pin_b": "C14"}
diff --git a/keyboards/keychron/q12/config.h b/keyboards/keychron/q12/config.h
index cc24578c16..91e5fcce1d 100644
--- a/keyboards/keychron/q12/config.h
+++ b/keyboards/keychron/q12/config.h
@@ -38,72 +38,3 @@
#define SNLED27351_CURRENT_TUNE \
{ 0xAD, 0xAD, 0x55, 0xAD, 0xAD, 0x55, 0xAD, 0xAD, 0x55, 0xAD, 0xAD, 0x55 }
-
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID \
- { \
- { 5, 4 } \
- }
-#define SCAN_COUNT_MAX 100
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-/* EEPROM Driver Configuration */
-// #define WEAR_LEVELING_LOGICAL_SIZE 2048 // default
-// #define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) // default
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/keychron/q12/info.json b/keyboards/keychron/q12/info.json
new file mode 100644
index 0000000000..b5e7dc1e1c
--- /dev/null
+++ b/keyboards/keychron/q12/info.json
@@ -0,0 +1,32 @@
+{
+ "dip_switch": {
+ "matrix_grid": [ [5, 4] ]
+ },
+ "rgb_matrix": {
+ "animations":{
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ }
+}
diff --git a/keyboards/keychron/q12/iso_encoder/config.h b/keyboards/keychron/q12/iso_encoder/config.h
index eb0957d7af..829fa73803 100644
--- a/keyboards/keychron/q12/iso_encoder/config.h
+++ b/keyboards/keychron/q12/iso_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 56
-#define DRIVER_2_LED_TOTAL 47
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
#define ENCODER_DEFAULT_POS 0x3
/* Enable caps-lock LED */
diff --git a/keyboards/keychron/q12/iso_encoder/info.json b/keyboards/keychron/q12/iso_encoder/info.json
index edd0d0ea43..c66c1bb665 100644
--- a/keyboards/keychron/q12/iso_encoder/info.json
+++ b/keyboards/keychron/q12/iso_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x01D3",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
"rotary": [
{"pin_a": "A2", "pin_b": "C14"}
diff --git a/keyboards/keychron/q12/iso_encoder/iso_encoder.c b/keyboards/keychron/q12/iso_encoder/iso_encoder.c
index 37d9db10b4..f05a35dad8 100644
--- a/keyboards/keychron/q12/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q12/iso_encoder/iso_encoder.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q12/q12.c b/keyboards/keychron/q12/q12.c
index 3d8eab5659..9a019af6ac 100644
--- a/keyboards/keychron/q12/q12.c
+++ b/keyboards/keychron/q12/q12.c
@@ -16,16 +16,6 @@
#include "quantum.h"
-// clang-format off
-const matrix_row_t matrix_mask[] = {
- 0b111111111111111111,
- 0b111111111111111111,
- 0b111111111111111111,
- 0b111111111111111111,
- 0b111111111111111111,
- 0b111111111111101111,
-};
-// clang-format on
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
if (!dip_switch_update_user(index, active)) {
diff --git a/keyboards/keychron/q1v1/ansi/ansi.c b/keyboards/keychron/q1v1/ansi/ansi.c
index 5f74267bf4..f45907eaf6 100644
--- a/keyboards/keychron/q1v1/ansi/ansi.c
+++ b/keyboards/keychron/q1v1/ansi/ansi.c
@@ -16,17 +16,8 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b0111111111111101,
- 0b0111111111111111,
- 0b0111111111111111,
- 0b0111111111111111,
- 0b0111111111111111,
- 0b0111111111111111,
-};
-
#ifdef RGB_MATRIX_ENABLE
-const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q1v1/ansi/config.h b/keyboards/keychron/q1v1/ansi/config.h
index 5eaa1e82f1..83ac22d2b6 100644
--- a/keyboards/keychron/q1v1/ansi/config.h
+++ b/keyboards/keychron/q1v1/ansi/config.h
@@ -16,8 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 82
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 45 \ No newline at end of file
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/README.md b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/README.md
deleted file mode 100644
index c2d5799bb8..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# gtg465x's Keychron Q1 keymap
-
-- On macOS, F3 opens Mission Control and F4 opens Launchpad without needing to configure shortcuts in System Preferences
-- RGB lighting turns off when the computer sleeps
-- Caps Lock and alpha keys turn red to indicate when Caps Lock is on
-- When the Fn layer is active, RGB lighting turns off for keys that are not assigned
-
-## Changelog
-
-### 10/3/2021 - 1.0.3
-
-- Feature: When the Fn layer is active, RGB lighting turns off for keys that are not assigned
-
-### 10/1/2021 - 1.0.2
-
-- Added Caps Lock indicator (my implementation is different, but this was inspired by mkillewald)
-- Mission Control and Launchpad custom keycodes are now defined using the VIA user keycodes range so they can be labeled properly in VIA
-
-### 9/28/2021 - 1.0.1
-
-- Initial release
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/config.h b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/config.h
deleted file mode 100644
index 5ac05d04c1..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/config.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 @ Grayson Carr
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-/* RGB Matrix Configuration */
-#ifdef RGB_MATRIX_ENABLE
-# define RGB_DISABLE_WHEN_USB_SUSPENDED
-# define CAPS_LOCK_INDICATOR_COLOR RGB_RED
-# define CAPS_LOCK_INDICATOR_LIGHT_ALPHAS
-# define FN_LAYER_TRANSPARENT_KEYS_OFF
-#endif
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap.c b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap.c
deleted file mode 100644
index 8da475c3c6..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright 2021 @ Grayson Carr
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-#include "keymap_user.h"
-#ifdef RGB_MATRIX_ENABLE
-# include "rgb_matrix_user.h"
-#endif
-
-// clang-format off
-
-#define KC_TASK LGUI(KC_TAB)
-#define KC_FLXP LGUI(KC_E)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[MAC_BASE] = LAYOUT_ansi_82(
- KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
-[MAC_FN] = LAYOUT_ansi_82(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
-[WIN_BASE] = LAYOUT_ansi_82(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
-[WIN_FN] = LAYOUT_ansi_82(
- KC_TRNS, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-
-};
-
-// clang-format on
-
-void matrix_init_user(void) {
-#ifdef RGB_MATRIX_ENABLE
- rgb_matrix_init_user();
-#endif
-}
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap_user.h b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap_user.h
deleted file mode 100644
index 728114d556..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap_user.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2021 @ Grayson Carr
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-// clang-format off
-
-enum layers {
- MAC_BASE,
- MAC_FN,
- WIN_BASE,
- WIN_FN
-};
-
-// clang-format on
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.c b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.c
deleted file mode 100644
index b7d12f9466..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright 2021 @ Grayson Carr
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-#include "rgb_matrix_user.h"
-#include "keymap_user.h"
-
-keypos_t led_index_key_position[RGB_MATRIX_LED_COUNT];
-
-void rgb_matrix_init_user(void) {
- for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
- for (uint8_t col = 0; col < MATRIX_COLS; col++) {
- uint8_t led_index = g_led_config.matrix_co[row][col];
- if (led_index != NO_LED) {
- led_index_key_position[led_index] = (keypos_t){.row = row, .col = col};
- }
- }
- }
-}
-
-bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- uint8_t current_layer = get_highest_layer(layer_state);
- switch (current_layer) {
- case MAC_BASE:
- case WIN_BASE:
-#ifdef CAPS_LOCK_INDICATOR_COLOR
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_caps_lock_indicator, CAPS_LOCK_INDICATOR_COLOR);
- }
-#endif
- break;
- case MAC_FN:
- case WIN_FN:
-#ifdef FN_LAYER_TRANSPARENT_KEYS_OFF
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_transparent, RGB_OFF);
-#endif
- break;
- }
- return false;
-}
-
-void rgb_matrix_set_color_by_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue) {
- for (uint8_t i = led_min; i < led_max; i++) {
- uint16_t keycode = keymap_key_to_keycode(layer, led_index_key_position[i]);
- if ((*is_keycode)(keycode)) {
- rgb_matrix_set_color(i, red, green, blue);
- }
- }
-}
-
-bool is_caps_lock_indicator(uint16_t keycode) {
-#ifdef CAPS_LOCK_INDICATOR_LIGHT_ALPHAS
- return (KC_A <= keycode && keycode <= KC_Z) || keycode == KC_CAPS;
-#else
- return keycode == KC_CAPS;
-#endif
-}
-
-bool is_transparent(uint16_t keycode) { return keycode == KC_TRNS; }
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.h b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.h
deleted file mode 100644
index dead454167..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2021 @ Grayson Carr
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-void rgb_matrix_init_user(void);
-
-void rgb_matrix_set_color_by_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue);
-
-bool is_caps_lock_indicator(uint16_t keycode);
-bool is_transparent(uint16_t keycode);
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rules.mk b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rules.mk
deleted file mode 100644
index 42ba38028d..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-VIA_ENABLE = yes
-MOUSEKEY_ENABLE = no
-
-ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
- SRC += rgb_matrix_user.c
-endif
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/config.h b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/config.h
deleted file mode 100644
index bc9fe405c3..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2021 @ Mike Killewald
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef RGB_MATRIX_ENABLE
-# define RGB_DISABLE_WHEN_USB_SUSPENDED
-# define CAPS_LOCK_INDICATOR_COLOR RGB_RED
-# define FN_LAYER_COLOR RGB_ORANGE
-#endif \ No newline at end of file
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap.c b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap.c
deleted file mode 100644
index 4fc8ad58e5..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright 2021 @ Mike Killewald
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-#include "keymap_user.h"
-#ifdef RGB_MATRIX_ENABLE
-# include "rgb_matrix_user.h"
-#endif
-
-// clang-format off
-
-typedef union {
- uint32_t raw;
- struct {
- bool caps_lock_light_tab :1;
- bool caps_lock_light_alphas :1;
- bool fn_layer_transparent_keys_off :1;
- bool fn_layer_color_enable :1;
- };
-} user_config_t;
-
-user_config_t user_config;
-
-enum custom_keycodes {
- KC_LIGHT_TAB_TOGGLE = QK_KB_2, // TECH DEBT: Starts at QK_KB_2 to maintain ordering with VIA definitions. See #19884. Revert to QK_KB_0 when VIA catches up with QMK.
- KC_LIGHT_ALPHAS_TOGGLE,
- KC_FN_LAYER_TRANSPARENT_KEYS_TOGGLE,
- KC_FN_LAYER_COLOR_TOGGLE
-};
-
-#define KC_LTTOG KC_LIGHT_TAB_TOGGLE
-#define KC_LATOG KC_LIGHT_ALPHAS_TOGGLE
-#define KC_TKTOG KC_FN_LAYER_TRANSPARENT_KEYS_TOGGLE
-#define KC_FCTOG KC_FN_LAYER_COLOR_TOGGLE
-#define KC_TASK LGUI(KC_TAB)
-#define KC_FLXP LGUI(KC_E)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[MAC_BASE] = LAYOUT_ansi_82(
- KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
-[MAC_FN] = LAYOUT_ansi_82(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LTTOG, KC_LATOG, KC_TKTOG, KC_FCTOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
-[WIN_BASE] = LAYOUT_ansi_82(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
-[WIN_FN] = LAYOUT_ansi_82(
- KC_TRNS, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LTTOG, KC_LATOG, KC_TKTOG, KC_FCTOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-
-};
-
-// clang-format on
-
-void matrix_init_user(void) {
-#ifdef RGB_MATRIX_ENABLE
- rgb_matrix_init_user();
-#endif
-}
-
-void keyboard_post_init_user(void) {
- user_config.raw = eeconfig_read_user();
-}
-
-void eeconfig_init_user(void) {
- user_config.raw = 0;
- user_config.caps_lock_light_tab = false;
- user_config.caps_lock_light_alphas = false;
- user_config.fn_layer_transparent_keys_off = true;
- user_config.fn_layer_color_enable = false;
- eeconfig_update_user(user_config.raw);
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_LIGHT_TAB_TOGGLE:
- if (record->event.pressed) {
- user_config.caps_lock_light_tab ^= 1; // bitwise xor to toggle status bit
- eeconfig_update_user(user_config.raw);
- }
- return false; // Skip all further processing of this key
- case KC_LIGHT_ALPHAS_TOGGLE:
- if (record->event.pressed) {
- user_config.caps_lock_light_alphas ^= 1;
- eeconfig_update_user(user_config.raw);
- }
- return false; // Skip all further processing of this key
- case KC_FN_LAYER_TRANSPARENT_KEYS_TOGGLE:
- if (record->event.pressed) {
- user_config.fn_layer_transparent_keys_off ^= 1;
- eeconfig_update_user(user_config.raw);
- }
- return false; // Skip all further processing of this key
- case KC_FN_LAYER_COLOR_TOGGLE:
- if (record->event.pressed) {
- user_config.fn_layer_color_enable ^= 1;
- eeconfig_update_user(user_config.raw);
- }
- return false; // Skip all further processing of this key
- default:
- return true; // Process all other keycodes normally
- }
-}
-
-bool get_caps_lock_light_tab(void) {
- return user_config.caps_lock_light_tab;
-}
-
-bool get_caps_lock_light_alphas(void) {
- return user_config.caps_lock_light_alphas;
-}
-
-bool get_fn_layer_transparent_keys_off(void) {
- return user_config.fn_layer_transparent_keys_off;
-}
-
-bool get_fn_layer_color_enable(void) {
- return user_config.fn_layer_color_enable;
-}
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap_user.h b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap_user.h
deleted file mode 100644
index 87b1baf47f..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap_user.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2021 @ Mike Killewald
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-// clang-format off
-
-enum layers {
- MAC_BASE,
- MAC_FN,
- WIN_BASE,
- WIN_FN
-};
-
-// clang-format on
-
-bool get_caps_lock_light_tab(void);
-bool get_caps_lock_light_alphas(void);
-bool get_fn_layer_transparent_keys_off(void);
-bool get_fn_layer_color_enable(void); \ No newline at end of file
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/readme.md b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/readme.md
deleted file mode 100644
index 8ff2dbcc2c..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/readme.md
+++ /dev/null
@@ -1,54 +0,0 @@
-## mkillewald's Keychron Q1 keymap (ANSI rev_0100) v1.0.4
-
-This keymap builds on the keymap by Grayson Carr (gtg465x) but adds a couple options.
-
-## Features:
-- On macOS, F3 opens Mission Control and F4 opens Launchpad without needing to configure shortcuts in System Preferences
-- RGB lighting turns off when the computer sleeps
-- Caps Lock RGB indicator
- - the Caps Lock key will light when Caps Lock is enabled with the following options:
- - #define CAPS_LOCK_INDICATOR_COLOR [color] in config.h to set the backlight color used for the indicator when Caps Lock is enabled (default: red)
- - Fn+Z will toggle lighting the TAB key when Caps Lock is enabled. This is useful with non backlit keycaps/legends. (default: off)
- - Fn+X will toggle lighting all the alpha keys when Caps Lock is enabled. (default: off)
-
-- Dynamic Fn layer RGB indicator
- - When the Fn key is held down, any keys defined on the Fn layer in this firmware or in VIA will be highlighted with the following options:
- - #define FN_LAYER_COLOR [color] in config.h to set a static color for defined keys (default: orange)
- - Fn+C will toggle turning off RGB for keys with no definition (default: RGB off)
- - Fn+V will toggle lighting the defined Fn layer keys with the static color set with FN_LAYER_COLOR (default: static color off)
-
-- All custom keycodes can be moved to different keys in VIA by using the ANY key with the following keycodes:
- - USER(0) (default: F3) macOS Mission Control
- - USER(1) (default: F4) macOS Launchpad
- - USER(2) (default: Fn+Z) Caps Lock light Tab toggle
- - USER(3) (default: Fn+X) Caps Lock light alphas toggle
- - USER(4) (default: Fn+C) Fn layer non-defined keys RGB toggle
- - USER(5) (default: Fn+V) Fn layer defined keys static color toggle
-
-RGB must be toggled on for all indicators to function. If you do not want an RGB mode active but still want the indicators, toggle RGB on and turn the brightness all the way off. The indicators will remain at full brightness.
-
-Please make sure to save any customizations you have made in VIA to a .json file before flashing the firmware. Sometimes it has been necessary to re-apply those changes in VIA after flashing the firmware. If that is the case, you will most likely need to manually add the USER(0) through USER(5) custom keycodes after loading your customizations from the saved .json file. Then re-save a new .json file which will have your previous customizations and the custom keycodes for future use as needed.
-
-#### USE AT YOUR OWN RISK
-
-## Changelog:
-
-v1.0.4 October 9, 2021
-- Caps Lock and Fn layer toggles are now stored in eeprom so settings will remain when Q1 is unplugged
-
-v1.0.3 October 8, 2021
-- now using keycode toggles instead of preprocessor directive to set the various Caps Lock and Fn Layer RGB lighting options. This allows for setting the options from user space without having to recompile.
-
-v1.0.2 October 7, 2021
-- adapted Grayson Carr's (gtg465x) Caps Lock alphas and dynamic Fn layer RGB routines
-- added CAPS_LOCK_INDICATOR_LIGHT_TAB config option to enable/disable lighting Tab with Caps Lock indicator
-- added FN_LAYER_COLOR config option to set FN layer static color
-
-v1.0.1 October 7, 2021
-- Mission Control and Launchpad custom keycodes are now defined using the VIA user keycodes range so thay can be labeled properly in VIA (adopted change from gtg465x)
-
-v1.0.0 September 30, 2021
-- Initial release built upon keymap by Grayson Carr (gtg465x)
-- defined Mission Control (F3) and Launchpad (F4) keycodes for macOs
-- RGB backlight turns off when computer sleeps
-- added Caps Lock indicator lighting both the Caps Lock and Tab LEDs for better effect on non-backlit keycaps
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.c b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.c
deleted file mode 100644
index c6fa5f1f15..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright 2021 @ Mike Killewald
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-#include "rgb_matrix_user.h"
-#include "keymap_user.h"
-
-keypos_t led_index_key_position[RGB_MATRIX_LED_COUNT];
-
-void rgb_matrix_init_user(void) {
- for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
- for (uint8_t col = 0; col < MATRIX_COLS; col++) {
- uint8_t led_index = g_led_config.matrix_co[row][col];
- if (led_index != NO_LED) {
- led_index_key_position[led_index] = (keypos_t){.row = row, .col = col};
- }
- }
- }
-}
-
-bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- uint8_t current_layer = get_highest_layer(layer_state);
- switch (current_layer) {
- case MAC_BASE:
- case WIN_BASE:
-#ifdef CAPS_LOCK_INDICATOR_COLOR
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_caps_lock_indicator, CAPS_LOCK_INDICATOR_COLOR);
- }
-#endif
- break;
- case MAC_FN:
- case WIN_FN:
-#ifdef FN_LAYER_COLOR
- if (get_fn_layer_color_enable()) {
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_not_transparent, FN_LAYER_COLOR);
- }
-#endif
- if (get_fn_layer_transparent_keys_off()) {
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_transparent, RGB_OFF);
- }
- break;
- }
- return false;
-}
-
-void rgb_matrix_set_color_by_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue) {
- for (uint8_t i = led_min; i < led_max; i++) {
- uint16_t keycode = keymap_key_to_keycode(layer, led_index_key_position[i]);
- if ((*is_keycode)(keycode)) {
- rgb_matrix_set_color(i, red, green, blue);
- }
- }
-}
-
-bool is_caps_lock_indicator(uint16_t keycode) {
- bool indicator = keycode == KC_CAPS;
-
- if (get_caps_lock_light_tab()) {
- indicator = keycode == KC_TAB || keycode == KC_CAPS;
- }
-
- if (get_caps_lock_light_alphas()) {
- return (KC_A <= keycode && keycode <= KC_Z) || indicator;
- } else {
- return indicator;
- }
-}
-
-bool is_transparent(uint16_t keycode) { return keycode == KC_TRNS; }
-bool is_not_transparent(uint16_t keycode) { return keycode != KC_TRNS; }
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.h b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.h
deleted file mode 100644
index 1fb79c0b2a..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2021 @ Mike Killewald
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-void rgb_matrix_init_user(void);
-
-void rgb_matrix_set_color_by_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue);
-
-bool is_caps_lock_indicator(uint16_t keycode);
-bool is_transparent(uint16_t keycode);
-bool is_not_transparent(uint16_t keycode);
-
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rules.mk b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rules.mk
deleted file mode 100644
index af720e37ee..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-VIA_ENABLE = yes
-MOUSEKEY_ENABLE = no
-
-ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
- SRC += rgb_matrix_user.c
-endif \ No newline at end of file
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/teimor/config.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/config.h
deleted file mode 100644
index 4378af4f58..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/teimor/config.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright 2022 @ Teimor Epstein
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 200
-
-/* RGB Matrix Configuration */
-#ifdef RGB_MATRIX_ENABLE
-# define RGB_DISABLE_WHEN_USB_SUSPENDED
-# define MAC_LAYER_DEFAULT_COLOR RGB_CYAN
-# define WIN_LAYER_DEFAULT_COLOR RGB_GREEN
-# define CAPS_LOCK_INDICATOR_COLOR RGB_RED
-# define CAPS_LOCK_INDICATOR_LIGHT_60
-# define FN_LAYER_TRANSPARENT_KEYS_OFF
-# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR // Sets the default mode, if none has been set
-# define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set
-#endif
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap.c
deleted file mode 100644
index 77af30c5b6..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright 2022 @ Teimor Epstein
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-#include "keymap_user.h"
-#ifdef RGB_MATRIX_ENABLE
-# include "rgb_matrix_user.h"
-#endif
-
-// clang-format off
-
-#define TG_NKRO MAGIC_TOGGLE_NKRO
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [MAC_BASE] = LAYOUT_ansi_82(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_END,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
- KC_LGMAC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_MACFN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [MAC_FN] = LAYOUT_ansi_82(
- _______, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MACPS, KC_INS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______,
- KC_CAPS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, KC_LMAC, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, TG_NKRO, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [WIN_BASE] = LAYOUT_ansi_82(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_END,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
- KC_LGWIN, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_WINFN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [WIN_FN] = LAYOUT_ansi_82(
- _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_INS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______,
- KC_CAPS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, TG_NKRO, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
-};
-
-// clang-format on
-
-void matrix_init_user(void) {
-#ifdef RGB_MATRIX_ENABLE
- rgb_matrix_init_user();
-#endif
-}
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap_user.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap_user.h
deleted file mode 100644
index 57ac5258c2..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap_user.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2022 @ Teimor Epstein
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-// clang-format off
-
-enum layers {
- MAC_BASE,
- MAC_FN,
- WIN_BASE,
- WIN_FN
-};
-
-// clang-format on
-
-// Tap dance enums
-enum {
- MAC_CAPS_LANGUAGE_CHANGE,
- WIN_CAPS_LANGUAGE_CHANGE,
-};
-
-#ifdef TAP_DANCE_ENABLE
-# define KC_LGMAC TD(MAC_CAPS_LANGUAGE_CHANGE)
-# define KC_LGWIN TD(WIN_CAPS_LANGUAGE_CHANGE)
-#else
-# define KC_LGMAC KC_CAPS
-# define KC_LGWIN KC_CAPS
-#endif
-#define KC_MACFN MO(MAC_FN)
-#define KC_WINFN MO(WIN_FN)
-#define KC_LMAC C(G(KC_Q))
-#define KC_MACPS G(S(KC_5))
-#define KC_TASK G(KC_TAB)
-#define KC_FLXP G(KC_E)
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/teimor/readme.md b/keyboards/keychron/q1v1/ansi/keymaps/teimor/readme.md
deleted file mode 100644
index 9aa16f9a89..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/teimor/readme.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# teimor's Keychron Q1 keymap
-
-- Via Enabled.
-- Tap dance enabled.
-- On macOS, F3 opens Mission Control and F4 opens Launchpad without needing to configure shortcuts in System Preferences.
-- RGB lighting turns off when the computer sleeps.
-- The RGB lighting for keys that are not assigned turns off when the Fn layer is active
-- 60% layout turns red to indicate when Caps Lock is on.
-- Windows and macOS: A single tap will quickly change the language, and holding will trigger Caps Lock. (Using Tap Dance)
-- RGB Matrix based on layout - macOS base layout will turn on cyan color, Windows base layout will turn on green color.
-- `fn + N` will toggle NKRO, useful when using the keyboard on freebsd.
-- `fn + L` on macOS will lock the system.
-- `fn + del` will trigger screenshot on macOS and Windows.
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.c
deleted file mode 100644
index fbc37fb5bf..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright 2022 @ Teimor Epstein
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-#include "rgb_matrix_user.h"
-#include "keymap_user.h"
-
-keypos_t led_index_key_position[RGB_MATRIX_LED_COUNT];
-
-void rgb_matrix_init_user(void) {
- for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
- for (uint8_t col = 0; col < MATRIX_COLS; col++) {
- uint8_t led_index = g_led_config.matrix_co[row][col];
- if (led_index != NO_LED) {
- led_index_key_position[led_index] = (keypos_t){.row = row, .col = col};
- }
- }
- }
-}
-
-bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- uint8_t current_layer = get_highest_layer(layer_state | default_layer_state);
- switch (current_layer) {
- case MAC_BASE:
- case WIN_BASE:
-#if defined CAPS_LOCK_INDICATOR_COLOR && defined MAC_LAYER_DEFAULT_COLOR && defined WIN_LAYER_DEFAULT_COLOR
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_caps_lock_indicator, CAPS_LOCK_INDICATOR_COLOR);
- } else if (current_layer == MAC_BASE)
- rgb_matrix_set_color_all(MAC_LAYER_DEFAULT_COLOR);
- else if (current_layer == WIN_BASE)
- rgb_matrix_set_color_all(WIN_LAYER_DEFAULT_COLOR);
-#endif
- break;
- case MAC_FN:
- case WIN_FN:
-#if defined MAC_LAYER_DEFAULT_COLOR && defined WIN_LAYER_DEFAULT_COLOR
- if (current_layer == MAC_FN) {
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_not_transparent, MAC_LAYER_DEFAULT_COLOR);
- } else if (current_layer == WIN_FN) {
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_not_transparent, WIN_LAYER_DEFAULT_COLOR);
- }
-#endif
-#ifdef FN_LAYER_TRANSPARENT_KEYS_OFF
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_transparent, RGB_OFF);
-#endif
- break;
- }
- return false;
-}
-
-void rgb_matrix_set_color_by_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue) {
- for (uint8_t i = led_min; i < led_max; i++) {
- uint16_t keycode = keymap_key_to_keycode(layer, led_index_key_position[i]);
- if ((*is_keycode)(keycode)) {
- rgb_matrix_set_color(i, red, green, blue);
- }
-#if defined MAC_LAYER_DEFAULT_COLOR && defined WIN_LAYER_DEFAULT_COLOR
- else {
- if (layer == MAC_BASE)
- rgb_matrix_set_color(i, MAC_LAYER_DEFAULT_COLOR);
- else if (layer == WIN_BASE)
- rgb_matrix_set_color(i, WIN_LAYER_DEFAULT_COLOR);
- }
-#endif
- }
-}
-
-bool is_caps_lock_indicator(uint16_t keycode) {
- bool indicator = keycode == KC_CAPS || keycode == KC_LGMAC || keycode == KC_LGWIN;
-#ifdef CAPS_LOCK_INDICATOR_LIGHT_60
- return (KC_A <= keycode && keycode <= KC_CAPS) || (KC_LEFT_CTRL <= keycode && keycode <= KC_RIGHT_GUI) || keycode == KC_MACFN || keycode == KC_WINFN || indicator;
-#else
- return indicator;
-#endif
-}
-
-bool is_transparent(uint16_t keycode) { return keycode == KC_TRNS; }
-bool is_not_transparent(uint16_t keycode) { return keycode != KC_TRNS; }
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.h
deleted file mode 100644
index 5b53b5b8ec..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2022 @ Teimor Epstein
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-void rgb_matrix_init_user(void);
-
-void rgb_matrix_set_color_by_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue);
-
-bool is_caps_lock_indicator(uint16_t keycode);
-bool is_transparent(uint16_t keycode);
-bool is_not_transparent(uint16_t keycode);
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/teimor/rules.mk b/keyboards/keychron/q1v1/ansi/keymaps/teimor/rules.mk
deleted file mode 100644
index bafb40484b..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/teimor/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-VIA_ENABLE = yes
-MOUSEKEY_ENABLE = no
-TAP_DANCE_ENABLE = yes
-
-ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
- SRC += rgb_matrix_user.c
-endif
-
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += tap_dance_user.c
- SRC += tap_dance_setup.c
- SRC += tap_dance_mac_caps.c
- SRC += tap_dance_win_caps.c
-endif
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.c
deleted file mode 100644
index dfb0346ff1..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright 2021 @ Teimor Epstein
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* macOS CapsLock language change */
-#include "tap_dance_mac_caps.h"
-
-static td_tap_t mac_caps_language_tap_state = {.is_press_action = true, .state = TD_NONE};
-
-void mac_caps_language_finished(tap_dance_state_t *state, void *user_data) {
- mac_caps_language_tap_state.state = current_dance(state);
- switch (mac_caps_language_tap_state.state) {
- case TD_SINGLE_TAP:
- register_code(KC_LCTL);
- register_code(KC_SPACE);
- break;
- case TD_SINGLE_HOLD:
- register_code(KC_CAPS_LOCK);
- break;
- default:
- break;
- }
-}
-
-void mac_caps_language_reset(tap_dance_state_t *state, void *user_data) {
- switch (mac_caps_language_tap_state.state) {
- case TD_SINGLE_TAP:
- unregister_code(KC_SPACE);
- unregister_code(KC_LCTL);
- break;
- case TD_SINGLE_HOLD:
- unregister_code(KC_CAPS_LOCK);
- break;
- default:
- break;
- }
- mac_caps_language_tap_state.state = TD_NONE;
-}
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.h
deleted file mode 100644
index ef552a2c2c..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2021 @ Teimor Epstein
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* macOS CapsLock language change */
-#pragma once
-
-#include "tap_dance_setup.h"
-
-void mac_caps_language_finished(tap_dance_state_t *state, void *user_data);
-void mac_caps_language_reset(tap_dance_state_t *state, void *user_data);
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.c
deleted file mode 100644
index 07257e556a..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright 2022 @ Teimor Epstein
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#include "tap_dance_setup.h"
-
-td_state_t current_dance(tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed) return TD_SINGLE_TAP;
- /* Key has not been interrupted, but the key is still held. Means you w ant to send a 'HOLD'. */
- else
- return TD_SINGLE_HOLD;
- } else if (state->count == 2) {
- /* TD_DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap
- action when hitting 'pp'. Suggested use case for this return value is when you want to send two
- keystrokes of the key, and not the 'double tap' action/macro. */
- if (state->interrupted)
- return TD_DOUBLE_SINGLE_TAP;
- else if (state->pressed)
- return TD_DOUBLE_HOLD;
- else
- return TD_DOUBLE_TAP;
- }
-
- /* Assumes no one is trying to type the same letter three times (at least not quickly).
- If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add
- an exception here to return a 'TD_TRIPLE_SINGLE_TAP', and define that enum just like 'TD_DOUBLE_SINGLE_TAP' */
- if (state->count == 3) {
- if (state->interrupted)
- return TD_TRIPLE_SINGLE_TAP;
- else if (state->pressed)
- return TD_TRIPLE_HOLD;
- else
- return TD_TRIPLE_TAP;
-
- } else
- return TD_UNKNOWN;
-}
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.h
deleted file mode 100644
index 5d2f4acd57..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2022 @ Teimor Epstein
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-typedef enum {
- TD_NONE,
- TD_UNKNOWN,
- TD_SINGLE_TAP,
- TD_SINGLE_HOLD,
- TD_DOUBLE_TAP,
- TD_DOUBLE_HOLD,
- TD_DOUBLE_SINGLE_TAP, // Send two single taps
- TD_TRIPLE_TAP,
- TD_TRIPLE_HOLD,
- TD_TRIPLE_SINGLE_TAP // Send three single tap
-} td_state_t;
-
-typedef struct {
- bool is_press_action;
- td_state_t state;
-} td_tap_t;
-
-td_state_t current_dance(tap_dance_state_t *state);
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_user.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_user.c
deleted file mode 100644
index ed8120572e..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_user.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2022 @ Teimor Epstein
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "keymap_user.h"
-#include "tap_dance_mac_caps.h"
-#include "tap_dance_win_caps.h"
-
-// clang-format off
-
-tap_dance_action_t tap_dance_actions[] = {
- [MAC_CAPS_LANGUAGE_CHANGE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, mac_caps_language_finished, mac_caps_language_reset),
- [WIN_CAPS_LANGUAGE_CHANGE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, win_caps_language_finished, win_caps_language_reset)
-};
-
-// clang-format on
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.c
deleted file mode 100644
index 1c7c438d2e..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright 2022 @ Teimor Epstein
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* Windows CapsLock language change */
-#include "tap_dance_win_caps.h"
-
-static td_tap_t win_caps_language_tap_state = {.is_press_action = true, .state = TD_NONE};
-
-void win_caps_language_finished(tap_dance_state_t *state, void *user_data) {
- win_caps_language_tap_state.state = current_dance(state);
- switch (win_caps_language_tap_state.state) {
- case TD_SINGLE_TAP:
- register_code(KC_LGUI);
- register_code(KC_SPACE);
- break;
- case TD_SINGLE_HOLD:
- register_code(KC_CAPS_LOCK);
- break;
- default:
- break;
- }
-}
-
-void win_caps_language_reset(tap_dance_state_t *state, void *user_data) {
- switch (win_caps_language_tap_state.state) {
- case TD_SINGLE_TAP:
- unregister_code(KC_SPACE);
- unregister_code(KC_LGUI);
- break;
- case TD_SINGLE_HOLD:
- unregister_code(KC_CAPS_LOCK);
- break;
- default:
- break;
- }
- win_caps_language_tap_state.state = TD_NONE;
-}
diff --git a/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.h
deleted file mode 100644
index 2289cce326..0000000000
--- a/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2022 @ Teimor Epstein
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* Windows CapsLock language change */
-#pragma once
-
-#include "tap_dance_setup.h"
-
-void win_caps_language_finished(tap_dance_state_t *state, void *user_data);
-void win_caps_language_reset(tap_dance_state_t *state, void *user_data);
diff --git a/keyboards/keychron/q1v1/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q1v1/ansi_encoder/ansi_encoder.c
index c4fc884bc2..1c15ac633d 100644
--- a/keyboards/keychron/q1v1/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q1v1/ansi_encoder/ansi_encoder.c
@@ -16,17 +16,8 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b0111111111111101,
- 0b0111111111111111,
- 0b0111111111111111,
- 0b0111111111111111,
- 0b0111111111111111,
- 0b0111111111111111,
-};
-
#ifdef RGB_MATRIX_ENABLE
-const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q1v1/ansi_encoder/config.h b/keyboards/keychron/q1v1/ansi_encoder/config.h
index e608b42c8d..c0d96766a3 100644
--- a/keyboards/keychron/q1v1/ansi_encoder/config.h
+++ b/keyboards/keychron/q1v1/ansi_encoder/config.h
@@ -16,8 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 82
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 45
diff --git a/keyboards/keychron/q1v1/config.h b/keyboards/keychron/q1v1/config.h
index 68b431f7b3..246f147afb 100644
--- a/keyboards/keychron/q1v1/config.h
+++ b/keyboards/keychron/q1v1/config.h
@@ -20,17 +20,5 @@
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {0,1} }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
/* Encoder Configuration*/
#define ENCODER_DEFAULT_POS 0x3
-
-/* Disable RGB lighting when PC is in suspend */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS \ No newline at end of file
diff --git a/keyboards/keychron/q1v1/info.json b/keyboards/keychron/q1v1/info.json
index 26c846927b..0107c60b9c 100644
--- a/keyboards/keychron/q1v1/info.json
+++ b/keyboards/keychron/q1v1/info.json
@@ -4,17 +4,22 @@
"maintainer": "lalalademaxiya1",
"bootloader": "atmel-dfu",
"diode_direction": "ROW2COL",
+ "build": {
+ "lto": true
+ },
"features": {
"bootmagic": true,
"command": false,
"console": false,
"dip_switch": true,
"extrakey": true,
- "lto": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
+ "dip_switch": {
+ "matrix_grid": [ [0, 1] ]
+ },
"matrix_pins": {
"cols": ["D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"],
"rows": ["D3", "D2", "B3", "B2", "B1", "B0"]
@@ -44,7 +49,8 @@
"splash": true,
"typing_heatmap": true
},
- "driver": "is31fl3733"
+ "driver": "is31fl3733",
+ "sleep": true
},
"url": "https://github.com/Keychron",
"usb": {
diff --git a/keyboards/keychron/q1v1/iso/config.h b/keyboards/keychron/q1v1/iso/config.h
index b6a2563986..4593b41067 100644
--- a/keyboards/keychron/q1v1/iso/config.h
+++ b/keyboards/keychron/q1v1/iso/config.h
@@ -16,8 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 83
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 44 \ No newline at end of file
diff --git a/keyboards/keychron/q1v1/iso/iso.c b/keyboards/keychron/q1v1/iso/iso.c
index 874f5c8539..109eb01282 100644
--- a/keyboards/keychron/q1v1/iso/iso.c
+++ b/keyboards/keychron/q1v1/iso/iso.c
@@ -16,17 +16,8 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b0111111111111101,
- 0b0111111111111111,
- 0b0111111111111111,
- 0b0111111111111111,
- 0b0111111111111111,
- 0b0111111111111111,
-};
-
#ifdef RGB_MATRIX_ENABLE
-const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q1v1/iso/keymaps/kubahorak/README.md b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/README.md
deleted file mode 100644
index 3cfae17543..0000000000
--- a/keyboards/keychron/q1v1/iso/keymaps/kubahorak/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# kubahorak's Keychron Q1 keymap
-
-This ISO layout got heavily inspired by gtg465x's ANSI keymap (rev_0100).
-
-Features:
-- The rightest key column is: Ins, Home, PgUp, PgDn, which differs from the default.
-- RGB lighting turns off when the computer sleeps
-- Caps Lock and alpha keys turn red to indicate when Caps Lock is on
-- When the Fn layer is active, RGB lighting turns off for keys that are not assigned
-
-## Changelog
-
-### 2021-10-17 - 1.0.0
-
-- Initial release
-
diff --git a/keyboards/keychron/q1v1/iso/keymaps/kubahorak/config.h b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/config.h
deleted file mode 100644
index 55dbb74d4a..0000000000
--- a/keyboards/keychron/q1v1/iso/keymaps/kubahorak/config.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 Jakub Horak (@kubahorak)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef RGB_MATRIX_ENABLE
-/* from rev_0100/keymaps/gtg465x */
-# define RGB_DISABLE_WHEN_USB_SUSPENDED
-# define CAPS_LOCK_INDICATOR_COLOR RGB_RED
-# define CAPS_LOCK_INDICATOR_LIGHT_ALPHAS
-# define FN_LAYER_TRANSPARENT_KEYS_OFF
-#endif
diff --git a/keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap.c b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap.c
deleted file mode 100644
index 479988dfa9..0000000000
--- a/keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Copyright 2021 Jakub Horak (@kubahorak)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-#include "keymap_user.h"
-#ifdef RGB_MATRIX_ENABLE
-# include "rgb_matrix_user.h"
-#endif
-
-// clang-format off
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_iso_83(
- KC_ESC, KC_BRID, KC_BRIU, KC_F3, KC_F4, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
- KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_iso_83(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P0, KC_PDOT, KC_PENT, KC_PPLS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [2] = LAYOUT_iso_83(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
- KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [3] = LAYOUT_iso_83(
- KC_TRNS, KC_BRID, KC_BRIU, LGUI(KC_TAB), LGUI(KC_E), RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P0, KC_PDOT, KC_PENT, KC_PPLS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
-
-// clang-format on
-
-void matrix_init_user(void) {
-#ifdef RGB_MATRIX_ENABLE
- rgb_matrix_init_user();
-#endif
-}
diff --git a/keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap_user.h b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap_user.h
deleted file mode 100644
index 728114d556..0000000000
--- a/keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap_user.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2021 @ Grayson Carr
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-// clang-format off
-
-enum layers {
- MAC_BASE,
- MAC_FN,
- WIN_BASE,
- WIN_FN
-};
-
-// clang-format on
diff --git a/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.c b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.c
deleted file mode 100644
index 638aa77eb0..0000000000
--- a/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright 2021 @ Grayson Carr
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-#include "rgb_matrix_user.h"
-#include "keymap_user.h"
-
-keypos_t led_index_key_position[RGB_MATRIX_LED_COUNT];
-
-void rgb_matrix_init_user(void) {
- for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
- for (uint8_t col = 0; col < MATRIX_COLS; col++) {
- uint8_t led_index = g_led_config.matrix_co[row][col];
- if (led_index != NO_LED) {
- led_index_key_position[led_index] = (keypos_t){.row = row, .col = col};
- }
- }
- }
-}
-
-bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- uint8_t current_layer = get_highest_layer(layer_state);
- switch (current_layer) {
- case MAC_BASE:
- case WIN_BASE:
-#ifdef CAPS_LOCK_INDICATOR_COLOR
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_caps_lock_indicator, CAPS_LOCK_INDICATOR_COLOR);
- }
-#endif
- break;
- case MAC_FN:
- case WIN_FN:
-#ifdef FN_LAYER_TRANSPARENT_KEYS_OFF
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_transparent, RGB_OFF);
-#endif
- break;
- }
- return false;
-}
-
-void rgb_matrix_set_color_by_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue) {
- for (uint8_t i = led_min; i < led_max; i++) {
- uint16_t keycode = keymap_key_to_keycode(layer, led_index_key_position[i]);
- if ((*is_keycode)(keycode)) {
- rgb_matrix_set_color(i, red, green, blue);
- }
- }
-}
-
-bool is_caps_lock_indicator(uint16_t keycode) {
- switch (keycode) {
-#ifdef CAPS_LOCK_INDICATOR_LIGHT_ALPHAS
- case KC_A ... KC_Z:
-#endif
- case KC_CAPS:
- return true;
- default:
- return false;
- }
-}
-
-bool is_transparent(uint16_t keycode) { return keycode == KC_TRNS; }
diff --git a/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.h b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.h
deleted file mode 100644
index dead454167..0000000000
--- a/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2021 @ Grayson Carr
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-void rgb_matrix_init_user(void);
-
-void rgb_matrix_set_color_by_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue);
-
-bool is_caps_lock_indicator(uint16_t keycode);
-bool is_transparent(uint16_t keycode);
diff --git a/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rules.mk b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rules.mk
deleted file mode 100644
index af720e37ee..0000000000
--- a/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-VIA_ENABLE = yes
-MOUSEKEY_ENABLE = no
-
-ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
- SRC += rgb_matrix_user.c
-endif \ No newline at end of file
diff --git a/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/config.h b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/config.h
index bc9fe405c3..acd208b8c6 100644
--- a/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/config.h
+++ b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/config.h
@@ -17,7 +17,7 @@
#pragma once
#ifdef RGB_MATRIX_ENABLE
-# define RGB_DISABLE_WHEN_USB_SUSPENDED
+# define RGB_MATRIX_SLEEP
# define CAPS_LOCK_INDICATOR_COLOR RGB_RED
# define FN_LAYER_COLOR RGB_ORANGE
#endif \ No newline at end of file
diff --git a/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/config.h b/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/config.h
deleted file mode 100644
index 02f08db4a7..0000000000
--- a/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/config.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright 2021 @ Victor-Gabriel Savu
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-// disable all default effects
-#undef ENABLE_RGB_MATRIX_BREATHING
-#undef ENABLE_RGB_MATRIX_CYCLE_ALL
-#undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#undef ENABLE_RGB_MATRIX_DUAL_BEACON
-#undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
-#undef ENABLE_RGB_MATRIX_RAINDROPS
-#undef ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#undef ENABLE_RGB_MATRIX_SPLASH
-#undef ENABLE_RGB_MATRIX_MULTISPLASH
-#undef ENABLE_RGB_MATRIX_SOLID_SPLASH
-#undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-// Allow fancy RGB
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-
-// Simple RGB
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-
-// Reactive RGB
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-
-#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_TYPING_HEATMAP
-
-#define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50
-
-// Unicode for Linux
-#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX
-#define UNICODE_KEY_LNX LCTL(LSFT(KC_U))
-
-// Leader config
-#define LEADER_PER_KEY_TIMING
-#define LEADER_TIMEOUT 500
diff --git a/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/keymap.c b/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/keymap.c
deleted file mode 100644
index 5256c97dca..0000000000
--- a/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/keymap.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Copyright 2021 @ Victor-Gabriel Savu
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-
-enum layers{
- MAC_BASE,
- MAC_FN,
- WIN_BASE,
- WIN_FN
-};
-
-#define KC_TASK LGUI(KC_TAB)
-#define KC_FLXP LGUI(KC_E)
-
-enum unicode_names {
- GRIN,
- SAD,
-};
-
-const uint32_t unicode_map[] PROGMEM = {
- [GRIN] = 0x1F600, // 😀
- [SAD] = 0x1F61E, // 😞
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[MAC_BASE] = LAYOUT_iso_83(
- KC_ESC, KC_BRID, KC_BRIU, KC_F3, KC_F4, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_INS,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
- KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
-[MAC_FN] = LAYOUT_iso_83(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
-[WIN_BASE] = LAYOUT_iso_83(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, UM(SAD),
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, UM(GRIN),
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP,
- QK_LEAD, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
- KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
-[WIN_FN] = LAYOUT_iso_83(
- KC_TRNS, KC_BRID, KC_BRIU, KC_CALC, KC_FLXP, RGB_VAD, RGB_VAI, KC_TRNS, KC_PSCR, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_CAPS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END)
-
-};
-
-static bool wiggle_mouse;
-static uint16_t wiggle_timer;
-static uint16_t next_wiggle;
-
-void leader_end_user(void) {
- if (leader_sequence_one_key(QK_LEAD)) {
- tap_code(KC_CAPS);
- }
-
- if (leader_sequence_four_keys(KC_I, KC_D, KC_L, KC_E)) {
- wiggle_mouse = !wiggle_mouse;
- wiggle_timer = timer_read();
- }
-
- if (leader_sequence_two_keys(KC_O, KC_K)) {
- send_unicode_string("👍");
- }
-
- if (leader_sequence_three_keys(KC_S, KC_A, KC_D)) {
- send_unicode_string("😞");
- }
-
- if (leader_sequence_five_keys(KC_C, KC_H, KC_E, KC_C, KC_K)) {
- send_unicode_string("✅");
- }
-
- if (leader_sequence_five_keys(KC_C, KC_R, KC_O, KC_S, KC_S)) {
- send_unicode_string("❎");
- }
-
- if (leader_sequence_five_keys(KC_T, KC_H, KC_A, KC_N, KC_K)) {
- send_unicode_string("🙏");
- }
-
- if (leader_sequence_five_keys(KC_S, KC_M, KC_I, KC_L, KC_E)) {
- send_unicode_string("😊");
- }
-
- if (leader_sequence_five_keys(KC_P, KC_A, KC_R, KC_T, KC_Y)) {
- send_unicode_string("🎉");
- }
-
- if (leader_sequence_four_keys(KC_E, KC_Y, KC_E, KC_S)) {
- send_unicode_string("(ಠ_ಠ)");
- }
-
- if (leader_sequence_five_keys(KC_M, KC_A, KC_G, KC_I, KC_C)) {
- send_unicode_string("(ಠ_ಠ) 🪄 ⠁⭒*.✫.*⭒⠁");
- }
-
- if (leader_sequence_five_keys(KC_T, KC_A, KC_B, KC_L, KC_E)) {
- send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻");
- }
-
- if (leader_sequence_five_keys(KC_S, KC_H, KC_R, KC_U, KC_G)) {
- send_unicode_string("¯\\_(ツ)_/¯");
- }
-}
-
-void matrix_scan_user(void) {
- if (wiggle_mouse && timer_elapsed(wiggle_timer) > next_wiggle) {
- wiggle_timer = timer_read();
-
- uint8_t rval = TCNT0 + TCNT1 + TCNT3 + TCNT4;
- next_wiggle = rval % 1000;
-
- if (rval & 1) tap_code(KC_MS_UP);
- if (rval & 2) tap_code(KC_MS_DOWN);
- if (rval & 4) tap_code(KC_MS_LEFT);
- if (rval & 8) tap_code(KC_MS_RIGHT);
- }
-}
diff --git a/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/readme.md b/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/readme.md
deleted file mode 100644
index c96130816e..0000000000
--- a/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/readme.md
+++ /dev/null
@@ -1,4 +0,0 @@
-# victorsavu3's Keychron Q1 keymap (ISO)
-
-Very similar to the default layout. Enables reactive and framebuffer RGB, but disables most effects enabled by keychron.
-Uses Caps Lock as a leader key for emojis and to enable a random mouse wiggler to prevent the system from going to sleep.
diff --git a/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/rules.mk b/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/rules.mk
deleted file mode 100644
index 853c414ec7..0000000000
--- a/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-MOUSEKEY_ENABLE = yes
-UNICODEMAP_ENABLE = yes
-LEADER_ENABLE = yes
diff --git a/keyboards/keychron/q1v1/iso_encoder/config.h b/keyboards/keychron/q1v1/iso_encoder/config.h
index 0907aa14af..ee86dc6881 100644
--- a/keyboards/keychron/q1v1/iso_encoder/config.h
+++ b/keyboards/keychron/q1v1/iso_encoder/config.h
@@ -16,8 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 83
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 44
diff --git a/keyboards/keychron/q1v1/iso_encoder/iso_encoder.c b/keyboards/keychron/q1v1/iso_encoder/iso_encoder.c
index 4a7496ed29..e46a17cdc6 100644
--- a/keyboards/keychron/q1v1/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q1v1/iso_encoder/iso_encoder.c
@@ -16,18 +16,9 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b0111111111111101,
- 0b0111111111111111,
- 0b0111111111111111,
- 0b0111111111111111,
- 0b0111111111111111,
- 0b0111111111111111,
-};
-
#ifdef RGB_MATRIX_ENABLE
-const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q1v2/ansi/ansi.c b/keyboards/keychron/q1v2/ansi/ansi.c
index 3b80c9d5c4..a25b597b03 100644
--- a/keyboards/keychron/q1v2/ansi/ansi.c
+++ b/keyboards/keychron/q1v2/ansi/ansi.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q1v2/ansi/config.h b/keyboards/keychron/q1v2/ansi/config.h
index 05ace31778..40df53a759 100644
--- a/keyboards/keychron/q1v2/ansi/config.h
+++ b/keyboards/keychron/q1v2/ansi/config.h
@@ -16,10 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 45
-#define DRIVER_2_LED_TOTAL 37
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 45
diff --git a/keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c
index 3b80c9d5c4..a25b597b03 100644
--- a/keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q1v2/ansi_encoder/config.h b/keyboards/keychron/q1v2/ansi_encoder/config.h
index 0dce301c3c..5d53fb81ca 100644
--- a/keyboards/keychron/q1v2/ansi_encoder/config.h
+++ b/keyboards/keychron/q1v2/ansi_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 45
-#define DRIVER_2_LED_TOTAL 37
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/q1v2/config.h b/keyboards/keychron/q1v2/config.h
index 5e2a7eaa54..326e60e3c0 100644
--- a/keyboards/keychron/q1v2/config.h
+++ b/keyboards/keychron/q1v2/config.h
@@ -27,31 +27,9 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID \
- { \
- { 5, 4 } \
- }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* Disable RGB lighting when PC is in suspend */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
/* Set LED driver current */
#define SNLED27351_CURRENT_TUNE \
{ 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 }
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
-
#define HOLD_ON_OTHER_KEY_PRESS // Old default behavior of mod-taps
diff --git a/keyboards/keychron/q1v2/info.json b/keyboards/keychron/q1v2/info.json
index b40c41c760..ed718006e3 100644
--- a/keyboards/keychron/q1v2/info.json
+++ b/keyboards/keychron/q1v2/info.json
@@ -18,6 +18,14 @@
"rgb_matrix": true,
"dip_switch": true
},
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "dip_switch": {
+ "matrix_grid": [ [5, 4] ]
+ },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", null, null, null, null, null, null, null, null],
"rows": ["B5", "B4", "B3", "A15", "A14", "A13"],
@@ -53,6 +61,7 @@
"solid_reactive_multinexus": true,
"splash": true,
"solid_splash": true
- }
+ },
+ "sleep": true
}
}
diff --git a/keyboards/keychron/q1v2/iso/config.h b/keyboards/keychron/q1v2/iso/config.h
index d9e596e2c5..f73455c9aa 100644
--- a/keyboards/keychron/q1v2/iso/config.h
+++ b/keyboards/keychron/q1v2/iso/config.h
@@ -16,10 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 45
-#define DRIVER_2_LED_TOTAL 38
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 44
diff --git a/keyboards/keychron/q1v2/iso/iso.c b/keyboards/keychron/q1v2/iso/iso.c
index d879e55083..53cdea506f 100644
--- a/keyboards/keychron/q1v2/iso/iso.c
+++ b/keyboards/keychron/q1v2/iso/iso.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q1v2/iso_encoder/config.h b/keyboards/keychron/q1v2/iso_encoder/config.h
index ab9be499d9..a61faa7b0f 100644
--- a/keyboards/keychron/q1v2/iso_encoder/config.h
+++ b/keyboards/keychron/q1v2/iso_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 45
-#define DRIVER_2_LED_TOTAL 38
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/q1v2/iso_encoder/iso_encoder.c b/keyboards/keychron/q1v2/iso_encoder/iso_encoder.c
index d879e55083..53cdea506f 100644
--- a/keyboards/keychron/q1v2/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q1v2/iso_encoder/iso_encoder.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q1v2/jis/config.h b/keyboards/keychron/q1v2/jis/config.h
index 2e3db213b0..40df53a759 100644
--- a/keyboards/keychron/q1v2/jis/config.h
+++ b/keyboards/keychron/q1v2/jis/config.h
@@ -16,10 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 46
-#define DRIVER_2_LED_TOTAL 40
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 45
diff --git a/keyboards/keychron/q1v2/jis/jis.c b/keyboards/keychron/q1v2/jis/jis.c
index e8c0112649..d43d64dd82 100644
--- a/keyboards/keychron/q1v2/jis/jis.c
+++ b/keyboards/keychron/q1v2/jis/jis.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q1v2/jis_encoder/config.h b/keyboards/keychron/q1v2/jis_encoder/config.h
index c80c4238f5..5d53fb81ca 100644
--- a/keyboards/keychron/q1v2/jis_encoder/config.h
+++ b/keyboards/keychron/q1v2/jis_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 46
-#define DRIVER_2_LED_TOTAL 40
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/q1v2/jis_encoder/jis_encoder.c b/keyboards/keychron/q1v2/jis_encoder/jis_encoder.c
index e8c0112649..d43d64dd82 100644
--- a/keyboards/keychron/q1v2/jis_encoder/jis_encoder.c
+++ b/keyboards/keychron/q1v2/jis_encoder/jis_encoder.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q1v2/q1v2.c b/keyboards/keychron/q1v2/q1v2.c
index 4f83a760d3..1de8f205c7 100644
--- a/keyboards/keychron/q1v2/q1v2.c
+++ b/keyboards/keychron/q1v2/q1v2.c
@@ -16,15 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
if (!dip_switch_update_user(index, active)) {
diff --git a/keyboards/keychron/q2/ansi/ansi.c b/keyboards/keychron/q2/ansi/ansi.c
index d0ff0a1869..64abe016a6 100644
--- a/keyboards/keychron/q2/ansi/ansi.c
+++ b/keyboards/keychron/q2/ansi/ansi.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q2/ansi/config.h b/keyboards/keychron/q2/ansi/config.h
index 41b92074be..1850088b1f 100644
--- a/keyboards/keychron/q2/ansi/config.h
+++ b/keyboards/keychron/q2/ansi/config.h
@@ -16,8 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 67
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 30 \ No newline at end of file
diff --git a/keyboards/keychron/q2/ansi/keymaps/ladduro/config.h b/keyboards/keychron/q2/ansi/keymaps/ladduro/config.h
deleted file mode 100644
index a8ad37d003..0000000000
--- a/keyboards/keychron/q2/ansi/keymaps/ladduro/config.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2022 @ Ionut Micu
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-/* RGB Matrix Configuration */
-#ifdef RGB_MATRIX_ENABLE
-# define RGB_DISABLE_WHEN_USB_SUSPENDED
-# define CAPS_LOCK_INDICATOR_COLOR RGB_RED
-# define CAPS_LOCK_INDICATOR_LIGHT_ALPHAS
-# define FN_LAYER_TRANSPARENT_KEYS_OFF
-#endif \ No newline at end of file
diff --git a/keyboards/keychron/q2/ansi/keymaps/ladduro/keymap.c b/keyboards/keychron/q2/ansi/keymaps/ladduro/keymap.c
deleted file mode 100644
index 55ee7a9732..0000000000
--- a/keyboards/keychron/q2/ansi/keymaps/ladduro/keymap.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright 2022 @ Ionut Micu
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-#include "keymap_user.h"
-#ifdef RGB_MATRIX_ENABLE
-# include "rgb_matrix_user.h"
-#endif
-
-#define KC_WAVE S(KC_GRV)
-#define KC_TASK LGUI(KC_TAB)
-#define KC_FLXP LGUI(KC_E)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [MAC_BASE] = LAYOUT_ansi_67(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
-
- [WIN_BASE] = LAYOUT_ansi_67(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
-
- [_FN1] = LAYOUT_ansi_67(
- KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD,RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- [_FN2] = LAYOUT_ansi_67(
- KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD,RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- [_FN3] = LAYOUT_ansi_67(
- KC_WAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD,RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-};
-
-void matrix_init_user(void) {
-#ifdef RGB_MATRIX_ENABLE
- rgb_matrix_init_user();
-#endif
-}
diff --git a/keyboards/keychron/q2/ansi/keymaps/ladduro/keymap_user.h b/keyboards/keychron/q2/ansi/keymaps/ladduro/keymap_user.h
deleted file mode 100644
index ded78ae1b8..0000000000
--- a/keyboards/keychron/q2/ansi/keymaps/ladduro/keymap_user.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2022 @ Ionut Micu
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-// clang-format off
-
-enum layers{
- MAC_BASE,
- WIN_BASE,
- _FN1,
- _FN2,
- _FN3,
-}; \ No newline at end of file
diff --git a/keyboards/keychron/q2/ansi/keymaps/ladduro/readme.md b/keyboards/keychron/q2/ansi/keymaps/ladduro/readme.md
deleted file mode 100644
index 42ca81a1a1..0000000000
--- a/keyboards/keychron/q2/ansi/keymaps/ladduro/readme.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# Ladduro keymap for Keychron Q2 (ANSI rev_0110) v1.01
-
-This keymap ports Q1 logic (by gtg465x) for RGB caps lock indicator and layer RBG assigned key.
-
-## Features:
-- On macOS, F3 opens Mission Control and F4 opens Launchpad without needing to configure shortcuts in System Preferences
-- RGB lighting turns off when the computer sleeps
-- Caps Lock and alpha keys turn red to indicate when Caps Lock is on
-- When the Fn layer is active, RGB lighting turns off for keys that are not assigned
-
-Make example for this keyboard (after setting up your build environment):
-
- make keychron/q2/rev_0110:ladduro
-
-Flashing example for this keyboard:
-
- make keychron/q2/rev_0110:ladduro:flash
-
-See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
-
-## Changelog
-
-### 14/03/2021 - 1.
-
-- Initial release
-
-### 02/04/2021 - 1.01
-
-- Remove via enable from rules.mk as it breaks the layout for some reason
diff --git a/keyboards/keychron/q2/ansi/keymaps/ladduro/rgb_matrix_user.c b/keyboards/keychron/q2/ansi/keymaps/ladduro/rgb_matrix_user.c
deleted file mode 100644
index 604f54a705..0000000000
--- a/keyboards/keychron/q2/ansi/keymaps/ladduro/rgb_matrix_user.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright 2022 @ Ionut Micu
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-#include "rgb_matrix_user.h"
-#include "keymap_user.h"
-
-keypos_t led_index_key_position[RGB_MATRIX_LED_COUNT];
-
-void rgb_matrix_init_user(void) {
- for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
- for (uint8_t col = 0; col < MATRIX_COLS; col++) {
- uint8_t led_index = g_led_config.matrix_co[row][col];
- if (led_index != NO_LED) {
- led_index_key_position[led_index] = (keypos_t){.row = row, .col = col};
- }
- }
- }
-}
-
-bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- uint8_t current_layer = get_highest_layer(layer_state);
- switch (current_layer) {
- case MAC_BASE:
- case WIN_BASE:
-#ifdef CAPS_LOCK_INDICATOR_COLOR
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_caps_lock_indicator, CAPS_LOCK_INDICATOR_COLOR);
- }
-#endif
- break;
- case _FN1:
- case _FN2:
- case _FN3:
-#ifdef FN_LAYER_TRANSPARENT_KEYS_OFF
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_transparent, RGB_OFF);
-#endif
- break;
- }
- return false;
-}
-
-void rgb_matrix_set_color_by_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue) {
- for (uint8_t i = led_min; i < led_max; i++) {
- uint16_t keycode = keymap_key_to_keycode(layer, led_index_key_position[i]);
- if ((*is_keycode)(keycode)) {
- rgb_matrix_set_color(i, red, green, blue);
- }
- }
-}
-
-bool is_caps_lock_indicator(uint16_t keycode) {
-#ifdef CAPS_LOCK_INDICATOR_LIGHT_ALPHAS
- return (KC_A <= keycode && keycode <= KC_Z) || keycode == KC_CAPS;
-#else
- return keycode == KC_CAPS;
-#endif
-}
-
-bool is_transparent(uint16_t keycode) { return keycode == KC_TRNS; }
diff --git a/keyboards/keychron/q2/ansi/keymaps/ladduro/rgb_matrix_user.h b/keyboards/keychron/q2/ansi/keymaps/ladduro/rgb_matrix_user.h
deleted file mode 100644
index 4d33f483ae..0000000000
--- a/keyboards/keychron/q2/ansi/keymaps/ladduro/rgb_matrix_user.h
+++ /dev/null
@@ -1,25 +0,0 @@
-
-/* Copyright 2022 @ Ionut Micu
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-void rgb_matrix_init_user(void);
-
-void rgb_matrix_set_color_by_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue);
-
-bool is_caps_lock_indicator(uint16_t keycode);
-bool is_transparent(uint16_t keycode); \ No newline at end of file
diff --git a/keyboards/keychron/q2/ansi/keymaps/ladduro/rules.mk b/keyboards/keychron/q2/ansi/keymaps/ladduro/rules.mk
deleted file mode 100644
index c0ee640cd2..0000000000
--- a/keyboards/keychron/q2/ansi/keymaps/ladduro/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-MOUSEKEY_ENABLE = no
-
-ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
- SRC += rgb_matrix_user.c
-endif
diff --git a/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c
index d0ff0a1869..64abe016a6 100644
--- a/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q2/ansi_encoder/config.h b/keyboards/keychron/q2/ansi_encoder/config.h
index 41b92074be..1850088b1f 100644
--- a/keyboards/keychron/q2/ansi_encoder/config.h
+++ b/keyboards/keychron/q2/ansi_encoder/config.h
@@ -16,8 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 67
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 30 \ No newline at end of file
diff --git a/keyboards/keychron/q2/config.h b/keyboards/keychron/q2/config.h
index 831612326b..8b446442cb 100644
--- a/keyboards/keychron/q2/config.h
+++ b/keyboards/keychron/q2/config.h
@@ -18,23 +18,11 @@
#define MATRIX_UNSELECT_DRIVE_HIGH
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {4, 4} }
-
/* RGB Matrix Driver Configuration */
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
/* Encoder Configuration*/
#define ENCODER_DEFAULT_POS 0x3
-
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/keychron/q2/info.json b/keyboards/keychron/q2/info.json
index 47d9aa83b1..d0bb48d7cb 100644
--- a/keyboards/keychron/q2/info.json
+++ b/keyboards/keychron/q2/info.json
@@ -22,6 +22,9 @@
"nkro": true,
"rgb_matrix": true
},
+ "dip_switch": {
+ "matrix_grid": [ [4, 4] ]
+ },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
"rows": ["B4", "B3", "A15", "A14", "A13"]
@@ -51,7 +54,8 @@
"splash": true,
"typing_heatmap": true
},
- "driver": "snled27351"
+ "driver": "snled27351",
+ "sleep": true
},
"url": "https://github.com/Keychron",
"usb": {
diff --git a/keyboards/keychron/q2/iso/config.h b/keyboards/keychron/q2/iso/config.h
index b463f7886e..22ddcba3ad 100644
--- a/keyboards/keychron/q2/iso/config.h
+++ b/keyboards/keychron/q2/iso/config.h
@@ -16,8 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 68
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 29 \ No newline at end of file
diff --git a/keyboards/keychron/q2/iso/iso.c b/keyboards/keychron/q2/iso/iso.c
index a54c90bc4b..7da02c4a79 100644
--- a/keyboards/keychron/q2/iso/iso.c
+++ b/keyboards/keychron/q2/iso/iso.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q2/iso_encoder/config.h b/keyboards/keychron/q2/iso_encoder/config.h
index b463f7886e..22ddcba3ad 100644
--- a/keyboards/keychron/q2/iso_encoder/config.h
+++ b/keyboards/keychron/q2/iso_encoder/config.h
@@ -16,8 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 68
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 29 \ No newline at end of file
diff --git a/keyboards/keychron/q2/iso_encoder/iso_encoder.c b/keyboards/keychron/q2/iso_encoder/iso_encoder.c
index a54c90bc4b..7da02c4a79 100644
--- a/keyboards/keychron/q2/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q2/iso_encoder/iso_encoder.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q2/jis/jis.c b/keyboards/keychron/q2/jis/jis.c
index d877e225d9..b8d36be505 100644
--- a/keyboards/keychron/q2/jis/jis.c
+++ b/keyboards/keychron/q2/jis/jis.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q2/jis_encoder/jis_encoder.c b/keyboards/keychron/q2/jis_encoder/jis_encoder.c
index d877e225d9..b8d36be505 100644
--- a/keyboards/keychron/q2/jis_encoder/jis_encoder.c
+++ b/keyboards/keychron/q2/jis_encoder/jis_encoder.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q2/q2.c b/keyboards/keychron/q2/q2.c
index 7ff85556de..1dd839eccc 100644
--- a/keyboards/keychron/q2/q2.c
+++ b/keyboards/keychron/q2/q2.c
@@ -16,14 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/q3/ansi/ansi.c b/keyboards/keychron/q3/ansi/ansi.c
index 8327ee430b..a2793b040c 100644
--- a/keyboards/keychron/q3/ansi/ansi.c
+++ b/keyboards/keychron/q3/ansi/ansi.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q3/ansi/config.h b/keyboards/keychron/q3/ansi/config.h
index 77afc9b9b6..a4008b8827 100644
--- a/keyboards/keychron/q3/ansi/config.h
+++ b/keyboards/keychron/q3/ansi/config.h
@@ -19,9 +19,6 @@
/* We use a pin with a stronger pull resistor than the internal MCU pins */
// #define MATRIX_UNSELECT_DRIVE_HIGH
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 87
-
#define SNLED27351_CURRENT_TUNE \
{ 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 }
diff --git a/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c
index a386e87a01..3b88a83d38 100644
--- a/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q3/ansi_encoder/config.h b/keyboards/keychron/q3/ansi_encoder/config.h
index 2a6f9ba4c5..0d8b3b7c3b 100644
--- a/keyboards/keychron/q3/ansi_encoder/config.h
+++ b/keyboards/keychron/q3/ansi_encoder/config.h
@@ -20,9 +20,6 @@
#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 }
#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN }
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 87
-
#define SNLED27351_CURRENT_TUNE \
{ 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 }
diff --git a/keyboards/keychron/q3/config.h b/keyboards/keychron/q3/config.h
index f93da42353..3f817d2853 100644
--- a/keyboards/keychron/q3/config.h
+++ b/keyboards/keychron/q3/config.h
@@ -29,17 +29,5 @@
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {5, 4} }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
/* Encoder Configuration*/
#define ENCODER_DEFAULT_POS 0x3
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/keychron/q3/info.json b/keyboards/keychron/q3/info.json
index c08d73f26a..a07fc670d8 100644
--- a/keyboards/keychron/q3/info.json
+++ b/keyboards/keychron/q3/info.json
@@ -3,6 +3,9 @@
"maintainer": "lalalademaxiya1",
"bootloader": "stm32-dfu",
"diode_direction": "ROW2COL",
+ "dip_switch": {
+ "matrix_grid": [ [5, 4] ]
+ },
"eeprom": {
"wear_leveling": {
"backing_size": 4096
@@ -43,7 +46,8 @@
"splash": true,
"typing_heatmap": true
},
- "driver": "snled27351"
+ "driver": "snled27351",
+ "sleep": true
},
"url": "https://github.com/Keychron",
"usb": {
diff --git a/keyboards/keychron/q3/iso/config.h b/keyboards/keychron/q3/iso/config.h
index 3ffda1ce1e..997fb73c69 100644
--- a/keyboards/keychron/q3/iso/config.h
+++ b/keyboards/keychron/q3/iso/config.h
@@ -19,9 +19,6 @@
/* We use a pin with a stronger pull resistor than the internal MCU pins */
// #define MATRIX_UNSELECT_DRIVE_HIGH
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 88
-
#define SNLED27351_CURRENT_TUNE \
{ 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 }
diff --git a/keyboards/keychron/q3/iso/iso.c b/keyboards/keychron/q3/iso/iso.c
index 725af67006..37f418e66b 100644
--- a/keyboards/keychron/q3/iso/iso.c
+++ b/keyboards/keychron/q3/iso/iso.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q3/iso_encoder/config.h b/keyboards/keychron/q3/iso_encoder/config.h
index 6893c2e8ff..72e8e7271c 100644
--- a/keyboards/keychron/q3/iso_encoder/config.h
+++ b/keyboards/keychron/q3/iso_encoder/config.h
@@ -20,9 +20,6 @@
#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 }
#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN }
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 88
-
#define SNLED27351_CURRENT_TUNE \
{ 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 }
diff --git a/keyboards/keychron/q3/iso_encoder/iso_encoder.c b/keyboards/keychron/q3/iso_encoder/iso_encoder.c
index 725af67006..37f418e66b 100644
--- a/keyboards/keychron/q3/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q3/iso_encoder/iso_encoder.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q3/jis/config.h b/keyboards/keychron/q3/jis/config.h
index 1ea4386bba..b4839aa33f 100644
--- a/keyboards/keychron/q3/jis/config.h
+++ b/keyboards/keychron/q3/jis/config.h
@@ -19,9 +19,6 @@
/* If PH3 used with a stronger pull resistor then the following definition needs be included */
// #define MATRIX_UNSELECT_DRIVE_HIGH
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 91
-
#define SNLED27351_CURRENT_TUNE \
{ 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 }
diff --git a/keyboards/keychron/q3/jis/jis.c b/keyboards/keychron/q3/jis/jis.c
index 4b19eca52f..0fc70b1af3 100644
--- a/keyboards/keychron/q3/jis/jis.c
+++ b/keyboards/keychron/q3/jis/jis.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q3/jis_encoder/config.h b/keyboards/keychron/q3/jis_encoder/config.h
index 5c5efb4ff6..d1d1bc758d 100644
--- a/keyboards/keychron/q3/jis_encoder/config.h
+++ b/keyboards/keychron/q3/jis_encoder/config.h
@@ -20,9 +20,6 @@
#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 }
#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN }
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 92
-
#define SNLED27351_CURRENT_TUNE \
{ 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 }
diff --git a/keyboards/keychron/q3/jis_encoder/jis_encoder.c b/keyboards/keychron/q3/jis_encoder/jis_encoder.c
index 8770f9d33c..df4a6a467b 100644
--- a/keyboards/keychron/q3/jis_encoder/jis_encoder.c
+++ b/keyboards/keychron/q3/jis_encoder/jis_encoder.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q3/q3.c b/keyboards/keychron/q3/q3.c
index 2bf8bf08a0..846b58d4a7 100644
--- a/keyboards/keychron/q3/q3.c
+++ b/keyboards/keychron/q3/q3.c
@@ -17,19 +17,6 @@
#include "quantum.h"
#include "rgb_matrix.h"
-// clang-format off
-
-const matrix_row_t matrix_mask[] = {
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111101111,
-};
-
-// clang-format on
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/q4/ansi/v1/config.h b/keyboards/keychron/q4/ansi/v1/config.h
index 2f437c72c6..478b2ff9f9 100644
--- a/keyboards/keychron/q4/ansi/v1/config.h
+++ b/keyboards/keychron/q4/ansi/v1/config.h
@@ -20,7 +20,4 @@
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 61
-
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
diff --git a/keyboards/keychron/q4/ansi/v1/v1.c b/keyboards/keychron/q4/ansi/v1/v1.c
index 6c1fecefec..f9e2946bb3 100644
--- a/keyboards/keychron/q4/ansi/v1/v1.c
+++ b/keyboards/keychron/q4/ansi/v1/v1.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q4/ansi/v2/config.h b/keyboards/keychron/q4/ansi/v2/config.h
index 029e7727a8..48a6c66908 100644
--- a/keyboards/keychron/q4/ansi/v2/config.h
+++ b/keyboards/keychron/q4/ansi/v2/config.h
@@ -18,6 +18,3 @@
/* RGB Matrix Driver Configuration */
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
-
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 61
diff --git a/keyboards/keychron/q4/ansi/v2/v2.c b/keyboards/keychron/q4/ansi/v2/v2.c
index 468a87af41..f7564c02a1 100644
--- a/keyboards/keychron/q4/ansi/v2/v2.c
+++ b/keyboards/keychron/q4/ansi/v2/v2.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q4/config.h b/keyboards/keychron/q4/config.h
index 62f8294966..fe4ee38e7d 100644
--- a/keyboards/keychron/q4/config.h
+++ b/keyboards/keychron/q4/config.h
@@ -16,17 +16,5 @@
#pragma once
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {4,4} }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
#define SNLED27351_CURRENT_TUNE \
{ 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 }
-
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS \ No newline at end of file
diff --git a/keyboards/keychron/q4/info.json b/keyboards/keychron/q4/info.json
index 0a9dcf4957..e314477ab9 100644
--- a/keyboards/keychron/q4/info.json
+++ b/keyboards/keychron/q4/info.json
@@ -4,6 +4,9 @@
"maintainer": "lalalademaxiya1",
"bootloader": "stm32-dfu",
"diode_direction": "ROW2COL",
+ "dip_switch": {
+ "matrix_grid": [ [4, 4] ]
+ },
"dynamic_keymap": {
"layer_count": 5
},
@@ -53,7 +56,8 @@
"splash": true,
"typing_heatmap": true
},
- "driver": "snled27351"
+ "driver": "snled27351",
+ "sleep": true
},
"url": "https://github.com/Keychron",
"usb": {
diff --git a/keyboards/keychron/q4/iso/config.h b/keyboards/keychron/q4/iso/config.h
index 8231b9eba8..9e97922991 100644
--- a/keyboards/keychron/q4/iso/config.h
+++ b/keyboards/keychron/q4/iso/config.h
@@ -19,8 +19,5 @@
/* RGB Matrix Driver Configuration */
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 62
-
/* Enable CapsLcok LED*/
#define CAPS_LOCK_LED_INDEX 27
diff --git a/keyboards/keychron/q4/iso/iso.c b/keyboards/keychron/q4/iso/iso.c
index a808c3ad74..c30f06c6bd 100644
--- a/keyboards/keychron/q4/iso/iso.c
+++ b/keyboards/keychron/q4/iso/iso.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q4/q4.c b/keyboards/keychron/q4/q4.c
index c3cb67bcc2..54ad01250f 100644
--- a/keyboards/keychron/q4/q4.c
+++ b/keyboards/keychron/q4/q4.c
@@ -16,14 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b11111111111111,
- 0b11111111111111,
- 0b11111111111111,
- 0b11111111111111,
- 0b11111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/q5/ansi/ansi.c b/keyboards/keychron/q5/ansi/ansi.c
index 8c80245fbc..1b74c0eef9 100644
--- a/keyboards/keychron/q5/ansi/ansi.c
+++ b/keyboards/keychron/q5/ansi/ansi.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
@@ -132,36 +132,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{1, L_7, J_7, K_7}
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 },
- { 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, __, 33, 34, 35 },
- { 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 70, 51, 52, 53 },
- { 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 18, 66, 36, 67, 68, 69 },
- { 71, __, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, __, 82, 83, 84, 85, 86 },
- { 87, 88, 89, __, __, 99, 90, __, __, __, 91, 92, 93, 94, 95, 96, 97, 98 }
- },
- {
- // LED Index to Physical Position
- {0,0}, {12,0}, {24,0}, {36,0}, {48,0}, {60,0}, {72,0}, {84,0}, {97,0}, {109,0}, {121,0}, {133,0}, {145,0}, {157,0}, {169,0}, {188,0}, {200,0}, {212,0}, {224,0},
- {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {84,15}, {97,15}, {109,15}, {121,15}, {133,15}, {145,15}, {163,15}, {188,15}, {200,15}, {212,15}, {224,15},
- {3,26}, {18,26}, {30,26}, {42,26}, {54,26}, {66,26}, {78,26}, {91,26}, {103,26}, {115,26}, {127,26}, {139,26}, {151,26}, {166,26}, {188,26}, {200,26}, {212,26},
- {5,38}, {21,38}, {33,38}, {45,38}, {57,38}, {69,38}, {81,38}, {94,38}, {106,38}, {118,38}, {130,38}, {142,38}, {161,38}, {188,38}, {200,38}, {212,38}, {224,32},
- {8,49}, {27,49}, {39,49}, {51,49}, {63,49}, {75,49}, {88,49}, {100,49}, {112,49}, {124,49}, {136,49}, {152,49}, {172,52}, {188,49}, {200,49}, {212,49},
- {1,61}, {17,61}, {32,61}, {77,61}, {121,61}, {133,61}, {145,61}, {160,64}, {172,64}, {184,64}, {200,61}, {212,61}, {224,55},
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 8, 4, 4, 4,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q5/ansi/config.h b/keyboards/keychron/q5/ansi/config.h
index 9ed58dd522..86df6f3056 100644
--- a/keyboards/keychron/q5/ansi/config.h
+++ b/keyboards/keychron/q5/ansi/config.h
@@ -16,13 +16,8 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 55
-#define DRIVER_2_LED_TOTAL 45
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 54
/* Enable num-lock LED */
-// #define NUM_LOCK_LED_INDEX 33
+#define NUM_LOCK_LED_INDEX 33
diff --git a/keyboards/keychron/q5/ansi/info.json b/keyboards/keychron/q5/ansi/info.json
index 8795957c45..399b5873da 100644
--- a/keyboards/keychron/q5/ansi/info.json
+++ b/keyboards/keychron/q5/ansi/info.json
@@ -1,18 +1,112 @@
{
- "keyboard_name": "Keychron Q5",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0150",
- "device_version": "1.0.0"
- },
"rgb_matrix": {
- "driver": "snled27351"
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 12, "y": 0, "flags": 1},
+ {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1},
+ {"matrix": [0, 3], "x": 36, "y": 0, "flags": 1},
+ {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1},
+ {"matrix": [0, 5], "x": 60, "y": 0, "flags": 1},
+ {"matrix": [0, 6], "x": 72, "y": 0, "flags": 1},
+ {"matrix": [0, 7], "x": 84, "y": 0, "flags": 1},
+ {"matrix": [0, 8], "x": 97, "y": 0, "flags": 1},
+ {"matrix": [0, 9], "x": 109, "y": 0, "flags": 1},
+ {"matrix": [0, 10], "x": 121, "y": 0, "flags": 1},
+ {"matrix": [0, 11], "x": 133, "y": 0, "flags": 1},
+ {"matrix": [0, 12], "x": 145, "y": 0, "flags": 1},
+ {"matrix": [0, 13], "x": 157, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 169, "y": 0, "flags": 1},
+ {"matrix": [0, 15], "x": 188, "y": 0, "flags": 1},
+ {"matrix": [0, 16], "x": 200, "y": 0, "flags": 1},
+ {"matrix": [0, 17], "x": 212, "y": 0, "flags": 1},
+ {"matrix": [3, 12], "x": 224, "y": 0, "flags": 1},
+ {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 12, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 24, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 36, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 48, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 60, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 72, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 84, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 97, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 109, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 121, "y": 15, "flags": 4},
+ {"matrix": [1, 11], "x": 133, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 145, "y": 15, "flags": 4},
+ {"matrix": [1, 13], "x": 163, "y": 15, "flags": 1},
+ {"matrix": [1, 15], "x": 188, "y": 15, "flags": 8},
+ {"matrix": [1, 16], "x": 200, "y": 15, "flags": 4},
+ {"matrix": [1, 17], "x": 212, "y": 15, "flags": 4},
+ {"matrix": [3, 14], "x": 224, "y": 15, "flags": 4},
+ {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1},
+ {"matrix": [2, 1], "x": 18, "y": 26, "flags": 4},
+ {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4},
+ {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4},
+ {"matrix": [2, 4], "x": 54, "y": 26, "flags": 4},
+ {"matrix": [2, 5], "x": 66, "y": 26, "flags": 4},
+ {"matrix": [2, 6], "x": 78, "y": 26, "flags": 4},
+ {"matrix": [2, 7], "x": 91, "y": 26, "flags": 4},
+ {"matrix": [2, 8], "x": 103, "y": 26, "flags": 4},
+ {"matrix": [2, 9], "x": 115, "y": 26, "flags": 4},
+ {"matrix": [2, 10], "x": 127, "y": 26, "flags": 4},
+ {"matrix": [2, 11], "x": 139, "y": 26, "flags": 4},
+ {"matrix": [2, 12], "x": 151, "y": 26, "flags": 4},
+ {"matrix": [2, 13], "x": 166, "y": 26, "flags": 4},
+ {"matrix": [2, 15], "x": 188, "y": 26, "flags": 4},
+ {"matrix": [2, 16], "x": 200, "y": 26, "flags": 4},
+ {"matrix": [2, 17], "x": 212, "y": 26, "flags": 4},
+ {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8},
+ {"matrix": [3, 1], "x": 21, "y": 38, "flags": 4},
+ {"matrix": [3, 2], "x": 33, "y": 38, "flags": 4},
+ {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4},
+ {"matrix": [3, 4], "x": 57, "y": 38, "flags": 4},
+ {"matrix": [3, 5], "x": 69, "y": 38, "flags": 4},
+ {"matrix": [3, 6], "x": 81, "y": 38, "flags": 4},
+ {"matrix": [3, 7], "x": 94, "y": 38, "flags": 4},
+ {"matrix": [3, 8], "x": 106, "y": 38, "flags": 4},
+ {"matrix": [3, 9], "x": 118, "y": 38, "flags": 4},
+ {"matrix": [3, 10], "x": 130, "y": 38, "flags": 4},
+ {"matrix": [3, 11], "x": 142, "y": 38, "flags": 4},
+ {"matrix": [3, 13], "x": 161, "y": 38, "flags": 1},
+ {"matrix": [3, 15], "x": 188, "y": 38, "flags": 4},
+ {"matrix": [3, 16], "x": 200, "y": 38, "flags": 4},
+ {"matrix": [3, 17], "x": 212, "y": 38, "flags": 4},
+ {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
+ {"matrix": [4, 0], "x": 8, "y": 49, "flags": 1},
+ {"matrix": [4, 2], "x": 27, "y": 49, "flags": 4},
+ {"matrix": [4, 3], "x": 39, "y": 49, "flags": 4},
+ {"matrix": [4, 4], "x": 51, "y": 49, "flags": 4},
+ {"matrix": [4, 5], "x": 63, "y": 49, "flags": 4},
+ {"matrix": [4, 6], "x": 75, "y": 49, "flags": 4},
+ {"matrix": [4, 7], "x": 88, "y": 49, "flags": 4},
+ {"matrix": [4, 8], "x": 100, "y": 49, "flags": 4},
+ {"matrix": [4, 9], "x": 112, "y": 49, "flags": 4},
+ {"matrix": [4, 10], "x": 124, "y": 49, "flags": 4},
+ {"matrix": [4, 11], "x": 136, "y": 49, "flags": 4},
+ {"matrix": [4, 13], "x": 152, "y": 49, "flags": 1},
+ {"matrix": [4, 14], "x": 172, "y": 52, "flags": 1},
+ {"matrix": [4, 15], "x": 188, "y": 49, "flags": 4},
+ {"matrix": [4, 16], "x": 200, "y": 49, "flags": 4},
+ {"matrix": [4, 17], "x": 212, "y": 49, "flags": 4},
+ {"matrix": [5, 0], "x": 1, "y": 61, "flags": 1},
+ {"matrix": [5, 1], "x": 17, "y": 61, "flags": 1},
+ {"matrix": [5, 2], "x": 32, "y": 61, "flags": 1},
+ {"matrix": [5, 6], "x": 77, "y": 61, "flags": 1},
+ {"matrix": [5, 10], "x": 121, "y": 61, "flags": 1},
+ {"matrix": [5, 11], "x": 133, "y": 61, "flags": 1},
+ {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1},
+ {"matrix": [5, 13], "x": 160, "y": 64, "flags": 1},
+ {"matrix": [5, 14], "x": 172, "y": 64, "flags": 1},
+ {"matrix": [5, 15], "x": 184, "y": 64, "flags": 1},
+ {"matrix": [5, 16], "x": 200, "y": 61, "flags": 1},
+ {"matrix": [5, 17], "x": 212, "y": 61, "flags": 1},
+ {"matrix": [5, 5], "x": 224, "y": 55, "flags": 1}
+ ]
+ },
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0150"
},
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
"layouts": {
"LAYOUT_ansi_100": {
"layout": [
@@ -107,7 +201,6 @@
{"matrix": [4, 15], "x": 15.5, "y": 4.25},
{"matrix": [4, 16], "x": 16.5, "y": 4.25},
{"matrix": [4, 17], "x": 17.5, "y": 4.25},
-
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
@@ -124,4 +217,4 @@
]
}
}
-}
+} \ No newline at end of file
diff --git a/keyboards/keychron/q5/ansi/rules.mk b/keyboards/keychron/q5/ansi/rules.mk
index 465dfa9348..c0d1417299 100644
--- a/keyboards/keychron/q5/ansi/rules.mk
+++ b/keyboards/keychron/q5/ansi/rules.mk
@@ -1,19 +1,4 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-
# custom matrix setup
CUSTOM_MATRIX = lite
-SRC += matrix.c
+SRC += matrix.c \ No newline at end of file
diff --git a/keyboards/keychron/q5/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q5/ansi_encoder/ansi_encoder.c
index d5f67f1297..646deb1115 100644
--- a/keyboards/keychron/q5/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q5/ansi_encoder/ansi_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
@@ -134,36 +134,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{1, L_7, J_7, K_7}
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, __, 1, 2, 3, 4, __, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
- { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, __, 31, 32, 33 },
- { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 68, 49, 50, 51 },
- { 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 16, 64, 34, 65, 66, 67 },
- { 69, __, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, __, 80, 81, 82, 83, 84 },
- { 85, 86, 87, __, __, 97, 88, __, __, __, 89, 90, 91, 92, 93, 94, 95, 96 }
- },
- {
- // LED Index to Physical Position
- {0,0}, {24,0}, {36,0}, {48,0}, {60,0}, {78,0}, {90,0}, {103,0}, {115,0}, {133,0}, {145,0}, {157,0}, {169,0}, {184,0}, {196,0}, {208,0}, {224,0},
- {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {85,15}, {97,15}, {109,15}, {121,15}, {133,15}, {145,15}, {163,15}, {188,15}, {200,15}, {212,15}, {224,15},
- {3,26}, {18,26}, {30,26}, {42,26}, {54,26}, {66,26}, {78,26}, {91,26}, {103,26}, {115,26}, {127,26}, {139,26}, {151,26}, {166,26}, {188,26}, {200,26}, {212,26},
- {5,38}, {21,38}, {33,38}, {45,38}, {57,38}, {69,38}, {81,38}, {94,38}, {106,38}, {118,38}, {130,38}, {142,38}, {161,38}, {188,38}, {200,38}, {212,38}, {224,32},
- {8,49}, {27,49}, {39,49}, {51,49}, {63,49}, {75,49}, {88,49}, {100,49}, {112,49}, {124,49}, {136,49}, {152,49}, {172,52}, {188,49}, {200,49}, {212,49},
- {1,61}, {17,61}, {32,61}, {77,61}, {121,61}, {133,61}, {145,61}, {160,64}, {172,64}, {184,64}, {200,61}, {212,61}, {224,55},
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 8, 4, 4, 4,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 4, 4, 4, 1
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q5/ansi_encoder/config.h b/keyboards/keychron/q5/ansi_encoder/config.h
index 3986c11a02..dc0853bc34 100644
--- a/keyboards/keychron/q5/ansi_encoder/config.h
+++ b/keyboards/keychron/q5/ansi_encoder/config.h
@@ -16,16 +16,8 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 53
-#define DRIVER_2_LED_TOTAL 45
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
-/* Encoder Configuration */
-#define ENCODER_DEFAULT_POS 0x3
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 52
/* Enable num-lock LED */
-// #define NUM_LOCK_LED_INDEX 31
+#define NUM_LOCK_LED_INDEX 31
diff --git a/keyboards/keychron/q5/ansi_encoder/info.json b/keyboards/keychron/q5/ansi_encoder/info.json
index ae4a58e55d..479ef38e72 100644
--- a/keyboards/keychron/q5/ansi_encoder/info.json
+++ b/keyboards/keychron/q5/ansi_encoder/info.json
@@ -1,23 +1,120 @@
{
- "keyboard_name": "Keychron Q5",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0151",
- "device_version": "1.0.0"
- },
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
+ "enabled": true,
"rotary": [
{"pin_a": "C14", "pin_b": "A2"}
]
},
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
+ "rgb_matrix": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1},
+ {"matrix": [0, 3], "x": 36, "y": 0, "flags": 1},
+ {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1},
+ {"matrix": [0, 5], "x": 60, "y": 0, "flags": 1},
+ {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1},
+ {"matrix": [0, 8], "x": 90, "y": 0, "flags": 1},
+ {"matrix": [0, 9], "x": 103, "y": 0, "flags": 1},
+ {"matrix": [0, 10], "x": 115, "y": 0, "flags": 1},
+ {"matrix": [0, 11], "x": 133, "y": 0, "flags": 1},
+ {"matrix": [0, 12], "x": 145, "y": 0, "flags": 1},
+ {"matrix": [0, 13], "x": 157, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 169, "y": 0, "flags": 1},
+ {"matrix": [0, 15], "x": 184, "y": 0, "flags": 1},
+ {"matrix": [0, 16], "x": 196, "y": 0, "flags": 1},
+ {"matrix": [0, 17], "x": 208, "y": 0, "flags": 1},
+ {"matrix": [3, 12], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 12, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 24, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 36, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 48, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 60, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 72, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 85, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 97, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 109, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 121, "y": 15, "flags": 4},
+ {"matrix": [1, 11], "x": 133, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 145, "y": 15, "flags": 4},
+ {"matrix": [1, 13], "x": 163, "y": 15, "flags": 1},
+ {"matrix": [1, 15], "x": 188, "y": 15, "flags": 8},
+ {"matrix": [1, 16], "x": 200, "y": 15, "flags": 4},
+ {"matrix": [1, 17], "x": 212, "y": 15, "flags": 4},
+ {"matrix": [3, 14], "x": 224, "y": 15, "flags": 4},
+
+ {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1},
+ {"matrix": [2, 1], "x": 18, "y": 26, "flags": 4},
+ {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4},
+ {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4},
+ {"matrix": [2, 4], "x": 54, "y": 26, "flags": 4},
+ {"matrix": [2, 5], "x": 66, "y": 26, "flags": 4},
+ {"matrix": [2, 6], "x": 78, "y": 26, "flags": 4},
+ {"matrix": [2, 7], "x": 91, "y": 26, "flags": 4},
+ {"matrix": [2, 8], "x": 103, "y": 26, "flags": 4},
+ {"matrix": [2, 9], "x": 115, "y": 26, "flags": 4},
+ {"matrix": [2, 10], "x": 127, "y": 26, "flags": 4},
+ {"matrix": [2, 11], "x": 139, "y": 26, "flags": 4},
+ {"matrix": [2, 12], "x": 151, "y": 26, "flags": 4},
+ {"matrix": [2, 13], "x": 166, "y": 26, "flags": 4},
+ {"matrix": [2, 15], "x": 188, "y": 26, "flags": 4},
+ {"matrix": [2, 16], "x": 200, "y": 26, "flags": 4},
+ {"matrix": [2, 17], "x": 212, "y": 26, "flags": 4},
+
+ {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8},
+ {"matrix": [3, 1], "x": 21, "y": 38, "flags": 4},
+ {"matrix": [3, 2], "x": 33, "y": 38, "flags": 4},
+ {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4},
+ {"matrix": [3, 4], "x": 57, "y": 38, "flags": 4},
+ {"matrix": [3, 5], "x": 69, "y": 38, "flags": 4},
+ {"matrix": [3, 6], "x": 81, "y": 38, "flags": 4},
+ {"matrix": [3, 7], "x": 94, "y": 38, "flags": 4},
+ {"matrix": [3, 8], "x": 106, "y": 38, "flags": 4},
+ {"matrix": [3, 9], "x": 118, "y": 38, "flags": 4},
+ {"matrix": [3, 10], "x": 130, "y": 38, "flags": 4},
+ {"matrix": [3, 11], "x": 142, "y": 38, "flags": 4},
+ {"matrix": [3, 13], "x": 161, "y": 38, "flags": 1},
+ {"matrix": [3, 15], "x": 188, "y": 38, "flags": 4},
+ {"matrix": [3, 16], "x": 200, "y": 38, "flags": 4},
+ {"matrix": [3, 17], "x": 212, "y": 38, "flags": 4},
+ {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
+
+ {"matrix": [4, 0], "x": 8, "y": 49, "flags": 1},
+ {"matrix": [4, 2], "x": 27, "y": 49, "flags": 4},
+ {"matrix": [4, 3], "x": 39, "y": 49, "flags": 4},
+ {"matrix": [4, 4], "x": 51, "y": 49, "flags": 4},
+ {"matrix": [4, 5], "x": 63, "y": 49, "flags": 4},
+ {"matrix": [4, 6], "x": 75, "y": 49, "flags": 4},
+ {"matrix": [4, 7], "x": 88, "y": 49, "flags": 4},
+ {"matrix": [4, 8], "x": 100, "y": 49, "flags": 4},
+ {"matrix": [4, 9], "x": 112, "y": 49, "flags": 4},
+ {"matrix": [4, 10], "x": 124, "y": 49, "flags": 4},
+ {"matrix": [4, 11], "x": 136, "y": 49, "flags": 4},
+ {"matrix": [4, 13], "x": 152, "y": 49, "flags": 1},
+ {"matrix": [4, 14], "x": 172, "y": 52, "flags": 1},
+ {"matrix": [4, 15], "x": 188, "y": 49, "flags": 4},
+ {"matrix": [4, 16], "x": 200, "y": 49, "flags": 4},
+ {"matrix": [4, 17], "x": 212, "y": 49, "flags": 4},
+ {"matrix": [5, 0], "x": 1, "y": 61, "flags": 1},
+ {"matrix": [5, 1], "x": 17, "y": 61, "flags": 1},
+ {"matrix": [5, 2], "x": 32, "y": 61, "flags": 1},
+ {"matrix": [5, 6], "x": 77, "y": 61, "flags": 4},
+ {"matrix": [5, 10], "x": 121, "y": 61, "flags": 1},
+ {"matrix": [5, 11], "x": 133, "y": 61, "flags": 1},
+ {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1},
+ {"matrix": [5, 13], "x": 160, "y": 64, "flags": 1},
+ {"matrix": [5, 14], "x": 172, "y": 64, "flags": 1},
+ {"matrix": [5, 15], "x": 184, "y": 64, "flags": 4},
+ {"matrix": [5, 16], "x": 200, "y": 61, "flags": 4},
+ {"matrix": [5, 17], "x": 212, "y": 61, "flags": 4},
+ {"matrix": [5, 5], "x": 224, "y": 55, "flags": 1}
+ ]
+ },
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0151"
+ },
"layouts": {
"LAYOUT_ansi_98": {
"layout": [
@@ -110,7 +207,6 @@
{"matrix": [4, 15], "x": 15.5, "y": 4.25},
{"matrix": [4, 16], "x": 16.5, "y": 4.25},
{"matrix": [4, 17], "x": 17.5, "y": 4.25},
-
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
@@ -127,4 +223,4 @@
]
}
}
-}
+} \ No newline at end of file
diff --git a/keyboards/keychron/q5/ansi_encoder/rules.mk b/keyboards/keychron/q5/ansi_encoder/rules.mk
index 4c6e5bebf0..c0d1417299 100644
--- a/keyboards/keychron/q5/ansi_encoder/rules.mk
+++ b/keyboards/keychron/q5/ansi_encoder/rules.mk
@@ -1,20 +1,4 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-
# custom matrix setup
CUSTOM_MATRIX = lite
-SRC += matrix.c
+SRC += matrix.c \ No newline at end of file
diff --git a/keyboards/keychron/q5/config.h b/keyboards/keychron/q5/config.h
index 0640331997..4d297b223a 100644
--- a/keyboards/keychron/q5/config.h
+++ b/keyboards/keychron/q5/config.h
@@ -26,9 +26,6 @@
#define MATRIX_COL_PINS \
{ A10, A9, A8, B1, B0, A7, A6, A5, A4, A3, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN }
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION ROW2COL
-
/* RGB Matrix Driver Configuration */
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
@@ -36,67 +33,5 @@
#define SNLED27351_CURRENT_TUNE \
{ 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56 }
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {5, 4} }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
+/* Encoder Configuration*/
+#define ENCODER_DEFAULT_POS 0x3 \ No newline at end of file
diff --git a/keyboards/keychron/q5/info.json b/keyboards/keychron/q5/info.json
new file mode 100644
index 0000000000..b35996d341
--- /dev/null
+++ b/keyboards/keychron/q5/info.json
@@ -0,0 +1,57 @@
+{
+ "manufacturer": "Keychron",
+ "keyboard_name": "Keychron Q5",
+ "maintainer": "lalalademaxiya1",
+ "bootloader": "stm32-dfu",
+ "diode_direction": "ROW2COL",
+ "dip_switch": {
+ "matrix_grid": [ [5, 4] ]
+ },
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "dip_switch": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "processor": "STM32L432",
+ "rgb_matrix": {
+ "animations": {
+ "band_spiral_val": true,
+ "breathing": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "cycle_up_down": true,
+ "digital_rain": true,
+ "dual_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "rainbow_beacon": true,
+ "rainbow_moving_chevron": true,
+ "solid_reactive_multinexus": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_simple": true,
+ "solid_splash": true,
+ "splash": true,
+ "typing_heatmap": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ },
+ "url": "https://github.com/Keychron",
+ "usb": {
+ "vid": "0x3434"
+ }
+} \ No newline at end of file
diff --git a/keyboards/keychron/q5/iso/config.h b/keyboards/keychron/q5/iso/config.h
index df775f11f1..43c25dc78b 100644
--- a/keyboards/keychron/q5/iso/config.h
+++ b/keyboards/keychron/q5/iso/config.h
@@ -16,13 +16,8 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 55
-#define DRIVER_2_LED_TOTAL 46
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 53
/* Enable num-lock LED */
-// #define NUM_LOCK_LED_INDEX 33
+#define NUM_LOCK_LED_INDEX 33
diff --git a/keyboards/keychron/q5/iso/info.json b/keyboards/keychron/q5/iso/info.json
index 2cc2ce9640..35ba9f9d04 100644
--- a/keyboards/keychron/q5/iso/info.json
+++ b/keyboards/keychron/q5/iso/info.json
@@ -1,18 +1,118 @@
{
- "keyboard_name": "Keychron Q5",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0152",
- "device_version": "1.0.0"
- },
"rgb_matrix": {
- "driver": "snled27351"
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 12, "y": 0, "flags": 1},
+ {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1},
+ {"matrix": [0, 3], "x": 36, "y": 0, "flags": 1},
+ {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1},
+ {"matrix": [0, 5], "x": 60, "y": 0, "flags": 1},
+ {"matrix": [0, 6], "x": 72, "y": 0, "flags": 1},
+ {"matrix": [0, 7], "x": 85, "y": 0, "flags": 1},
+ {"matrix": [0, 8], "x": 97, "y": 0, "flags": 1},
+ {"matrix": [0, 9], "x": 109, "y": 0, "flags": 1},
+ {"matrix": [0, 10], "x": 121, "y": 0, "flags": 1},
+ {"matrix": [0, 11], "x": 133, "y": 0, "flags": 1},
+ {"matrix": [0, 12], "x": 145, "y": 0, "flags": 1},
+ {"matrix": [0, 13], "x": 157, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 169, "y": 0, "flags": 1},
+ {"matrix": [0, 15], "x": 188, "y": 0, "flags": 1},
+ {"matrix": [0, 16], "x": 200, "y": 0, "flags": 1},
+ {"matrix": [0, 17], "x": 212, "y": 0, "flags": 1},
+ {"matrix": [3, 12], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 12, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 24, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 36, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 48, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 60, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 72, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 85, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 97, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 109, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 121, "y": 15, "flags": 4},
+ {"matrix": [1, 11], "x": 133, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 145, "y": 15, "flags": 4},
+ {"matrix": [1, 13], "x": 163, "y": 15, "flags": 1},
+ {"matrix": [1, 15], "x": 188, "y": 15, "flags": 8},
+ {"matrix": [1, 16], "x": 200, "y": 15, "flags": 4},
+ {"matrix": [1, 17], "x": 212, "y": 15, "flags": 4},
+ {"matrix": [3, 14], "x": 224, "y": 15, "flags": 4},
+
+ {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1},
+ {"matrix": [2, 1], "x": 18, "y": 26, "flags": 4},
+ {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4},
+ {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4},
+ {"matrix": [2, 4], "x": 54, "y": 26, "flags": 4},
+ {"matrix": [2, 5], "x": 66, "y": 26, "flags": 4},
+ {"matrix": [2, 6], "x": 78, "y": 26, "flags": 4},
+ {"matrix": [2, 7], "x": 91, "y": 26, "flags": 4},
+ {"matrix": [2, 8], "x": 103, "y": 26, "flags": 4},
+ {"matrix": [2, 9], "x": 115, "y": 26, "flags": 4},
+ {"matrix": [2, 10], "x": 127, "y": 26, "flags": 4},
+ {"matrix": [2, 11], "x": 139, "y": 26, "flags": 4},
+ {"matrix": [2, 12], "x": 151, "y": 26, "flags": 4},
+ {"matrix": [2, 15], "x": 188, "y": 26, "flags": 4},
+ {"matrix": [2, 16], "x": 200, "y": 26, "flags": 4},
+ {"matrix": [2, 17], "x": 212, "y": 26, "flags": 4},
+
+ {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8},
+ {"matrix": [3, 1], "x": 21, "y": 38, "flags": 4},
+ {"matrix": [3, 2], "x": 33, "y": 38, "flags": 4},
+ {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4},
+ {"matrix": [3, 4], "x": 57, "y": 38, "flags": 4},
+ {"matrix": [3, 5], "x": 69, "y": 38, "flags": 4},
+ {"matrix": [3, 6], "x": 81, "y": 38, "flags": 4},
+ {"matrix": [3, 7], "x": 94, "y": 38, "flags": 4},
+ {"matrix": [3, 8], "x": 106, "y": 38, "flags": 4},
+ {"matrix": [3, 9], "x": 118, "y": 38, "flags": 4},
+ {"matrix": [3, 10], "x": 130, "y": 38, "flags": 4},
+ {"matrix": [3, 11], "x": 142, "y": 38, "flags": 4},
+ {"matrix": [3, 13], "x": 154, "y": 38, "flags": 4},
+ {"matrix": [2, 13], "x": 170, "y": 34, "flags": 1},
+ {"matrix": [3, 15], "x": 188, "y": 38, "flags": 4},
+ {"matrix": [3, 16], "x": 200, "y": 38, "flags": 4},
+ {"matrix": [3, 17], "x": 212, "y": 38, "flags": 4},
+ {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
+
+ {"matrix": [4, 0], "x": 3, "y": 49, "flags": 1},
+ {"matrix": [4, 1], "x": 15, "y": 49, "flags": 4},
+ {"matrix": [4, 2], "x": 27, "y": 49, "flags": 4},
+ {"matrix": [4, 3], "x": 39, "y": 49, "flags": 4},
+ {"matrix": [4, 4], "x": 51, "y": 49, "flags": 4},
+ {"matrix": [4, 5], "x": 63, "y": 49, "flags": 4},
+ {"matrix": [4, 6], "x": 75, "y": 49, "flags": 4},
+ {"matrix": [4, 7], "x": 88, "y": 49, "flags": 4},
+ {"matrix": [4, 8], "x": 100, "y": 49, "flags": 4},
+ {"matrix": [4, 9], "x": 112, "y": 49, "flags": 4},
+ {"matrix": [4, 10], "x": 124, "y": 49, "flags": 4},
+ {"matrix": [4, 11], "x": 136, "y": 49, "flags": 4},
+ {"matrix": [4, 13], "x": 152, "y": 49, "flags": 1},
+ {"matrix": [4, 14], "x": 172, "y": 52, "flags": 1},
+ {"matrix": [4, 15], "x": 188, "y": 49, "flags": 4},
+ {"matrix": [4, 16], "x": 200, "y": 49, "flags": 4},
+ {"matrix": [4, 17], "x": 212, "y": 49, "flags": 4},
+
+ {"matrix": [5, 0], "x": 1, "y": 61, "flags": 1},
+ {"matrix": [5, 1], "x": 17, "y": 61, "flags": 1},
+ {"matrix": [5, 2], "x": 32, "y": 61, "flags": 1},
+ {"matrix": [5, 6], "x": 77, "y": 61, "flags": 4},
+ {"matrix": [5, 10], "x": 121, "y": 61, "flags": 1},
+ {"matrix": [5, 11], "x": 133, "y": 61, "flags": 1},
+ {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1},
+ {"matrix": [5, 13], "x": 160, "y": 64, "flags": 1},
+ {"matrix": [5, 14], "x": 172, "y": 64, "flags": 1},
+ {"matrix": [5, 15], "x": 184, "y": 64, "flags": 1},
+ {"matrix": [5, 16], "x": 200, "y": 61, "flags": 4},
+ {"matrix": [5, 17], "x": 212, "y": 61, "flags": 4},
+ {"matrix": [5, 5], "x": 224, "y": 55, "flags": 1}
+ ]
+ },
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0152"
},
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
"layouts": {
"LAYOUT_iso_101": {
"layout": [
@@ -125,4 +225,4 @@
]
}
}
-}
+} \ No newline at end of file
diff --git a/keyboards/keychron/q5/iso/iso.c b/keyboards/keychron/q5/iso/iso.c
index 8a7cb863ec..e5a6399f7a 100644
--- a/keyboards/keychron/q5/iso/iso.c
+++ b/keyboards/keychron/q5/iso/iso.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
@@ -135,36 +135,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{1, L_7, J_7, K_7}
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 },
- { 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, __, 33, 34, 35 },
- { 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 66, 70, 50, 51, 52 },
- { 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 18, 65, 36, 67, 68, 69 },
- { 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, __, 83, 84, 85, 86, 87 },
- { 88, 89, 90, __, __, 100, 91, __, __, __, 92, 93, 94, 95, 96, 97, 98, 99 },
- },
- {
- // LED Index to Physical Position
- {0,0}, {12,0}, {24,0}, {36,0}, {48,0}, {60,0}, {72,0}, {85,0}, {97,0}, {109,0}, {121,0}, {133,0}, {145,0}, {157,0}, {169,0}, {188,0}, {200,0}, {212,0}, {224,0},
- {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {85,15}, {97,15}, {109,15}, {121,15}, {133,15}, {145,15}, {163,15}, {188,15}, {200,15}, {212,15}, {224,15},
- {3,26}, {18,26}, {30,26}, {42,26}, {54,26}, {66,26}, {78,26}, {91,26}, {103,26}, {115,26}, {127,26}, {139,26}, {151,26}, {188,26}, {200,26}, {212,26},
- {5,38}, {21,38}, {33,38}, {45,38}, {57,38}, {69,38}, {81,38}, {94,38}, {106,38}, {118,38}, {130,38}, {142,38}, {154,38}, {170,34}, {188,38}, {200,38}, {212,38}, {224,32},
- {3,49}, {15,49}, {27,49}, {39,49}, {51,49}, {63,49}, {75,49}, {88,49}, {100,49}, {112,49}, {124,49}, {136,49}, {152,49}, {172,52}, {188,49}, {200,49}, {212,49},
- {1,61}, {17,61}, {32,61}, {77,61}, {121,61}, {133,61}, {145,61}, {160,64}, {172,64}, {184,64}, {200,61}, {212,61}, {224,55},
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 8, 4, 4, 4,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 4, 4, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q5/iso/rules.mk b/keyboards/keychron/q5/iso/rules.mk
index 465dfa9348..c0d1417299 100644
--- a/keyboards/keychron/q5/iso/rules.mk
+++ b/keyboards/keychron/q5/iso/rules.mk
@@ -1,19 +1,4 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-
# custom matrix setup
CUSTOM_MATRIX = lite
-SRC += matrix.c
+SRC += matrix.c \ No newline at end of file
diff --git a/keyboards/keychron/q5/iso_encoder/config.h b/keyboards/keychron/q5/iso_encoder/config.h
index 3a786cbb39..9611480fad 100644
--- a/keyboards/keychron/q5/iso_encoder/config.h
+++ b/keyboards/keychron/q5/iso_encoder/config.h
@@ -16,16 +16,8 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 53
-#define DRIVER_2_LED_TOTAL 46
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
-/* Encoder Configuration */
-#define ENCODER_DEFAULT_POS 0x3
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 51
/* Enable num-lock LED */
-// #define NUM_LOCK_LED_INDEX 31
+#define NUM_LOCK_LED_INDEX 31
diff --git a/keyboards/keychron/q5/iso_encoder/info.json b/keyboards/keychron/q5/iso_encoder/info.json
index a425cf3145..10e6767eaf 100644
--- a/keyboards/keychron/q5/iso_encoder/info.json
+++ b/keyboards/keychron/q5/iso_encoder/info.json
@@ -1,23 +1,117 @@
{
- "keyboard_name": "Keychron Q5",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0153",
- "device_version": "1.0.0"
- },
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
+ "enabled": true,
"rotary": [
{"pin_a": "C14", "pin_b": "A2"}
]
},
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
+ "rgb_matrix": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1},
+ {"matrix": [0, 3], "x": 36, "y": 0, "flags": 1},
+ {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1},
+ {"matrix": [0, 5], "x": 60, "y": 0, "flags": 1},
+ {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1},
+ {"matrix": [0, 8], "x": 90, "y": 0, "flags": 1},
+ {"matrix": [0, 9], "x": 103, "y": 0, "flags": 1},
+ {"matrix": [0, 10], "x": 115, "y": 0, "flags": 1},
+ {"matrix": [0, 11], "x": 133, "y": 0, "flags": 1},
+ {"matrix": [0, 12], "x": 145, "y": 0, "flags": 1},
+ {"matrix": [0, 13], "x": 157, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 169, "y": 0, "flags": 1},
+ {"matrix": [0, 15], "x": 184, "y": 0, "flags": 1},
+ {"matrix": [0, 16], "x": 196, "y": 0, "flags": 1},
+ {"matrix": [0, 17], "x": 208, "y": 0, "flags": 1},
+ {"matrix": [3, 12], "x": 224, "y": 0, "flags": 1},
+ {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 12, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 24, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 36, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 48, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 60, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 72, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 85, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 97, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 109, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 121, "y": 15, "flags": 4},
+ {"matrix": [1, 11], "x": 133, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 145, "y": 15, "flags": 4},
+ {"matrix": [1, 13], "x": 163, "y": 15, "flags": 1},
+ {"matrix": [1, 15], "x": 188, "y": 15, "flags": 8},
+ {"matrix": [1, 16], "x": 200, "y": 15, "flags": 4},
+ {"matrix": [1, 17], "x": 212, "y": 15, "flags": 4},
+ {"matrix": [3, 14], "x": 224, "y": 15, "flags": 4},
+ {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1},
+ {"matrix": [2, 1], "x": 18, "y": 26, "flags": 4},
+ {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4},
+ {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4},
+ {"matrix": [2, 4], "x": 54, "y": 26, "flags": 4},
+ {"matrix": [2, 5], "x": 66, "y": 26, "flags": 4},
+ {"matrix": [2, 6], "x": 78, "y": 26, "flags": 4},
+ {"matrix": [2, 7], "x": 91, "y": 26, "flags": 4},
+ {"matrix": [2, 8], "x": 103, "y": 26, "flags": 4},
+ {"matrix": [2, 9], "x": 115, "y": 26, "flags": 4},
+ {"matrix": [2, 10], "x": 127, "y": 26, "flags": 4},
+ {"matrix": [2, 11], "x": 139, "y": 26, "flags": 4},
+ {"matrix": [2, 12], "x": 151, "y": 26, "flags": 4},
+ {"matrix": [2, 15], "x": 188, "y": 26, "flags": 4},
+ {"matrix": [2, 16], "x": 200, "y": 26, "flags": 4},
+ {"matrix": [2, 17], "x": 212, "y": 26, "flags": 4},
+ {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8},
+ {"matrix": [3, 1], "x": 21, "y": 38, "flags": 4},
+ {"matrix": [3, 2], "x": 33, "y": 38, "flags": 4},
+ {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4},
+ {"matrix": [3, 4], "x": 57, "y": 38, "flags": 4},
+ {"matrix": [3, 5], "x": 69, "y": 38, "flags": 4},
+ {"matrix": [3, 6], "x": 81, "y": 38, "flags": 4},
+ {"matrix": [3, 7], "x": 94, "y": 38, "flags": 4},
+ {"matrix": [3, 8], "x": 106, "y": 38, "flags": 4},
+ {"matrix": [3, 9], "x": 118, "y": 38, "flags": 4},
+ {"matrix": [3, 10], "x": 130, "y": 38, "flags": 4},
+ {"matrix": [3, 11], "x": 142, "y": 38, "flags": 4},
+ {"matrix": [3, 13], "x": 154, "y": 38, "flags": 4},
+ {"matrix": [2, 13], "x": 170, "y": 34, "flags": 1},
+ {"matrix": [3, 15], "x": 188, "y": 38, "flags": 4},
+ {"matrix": [3, 16], "x": 200, "y": 38, "flags": 4},
+ {"matrix": [3, 17], "x": 212, "y": 38, "flags": 4},
+ {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
+ {"matrix": [4, 0], "x": 3, "y": 49, "flags": 1},
+ {"matrix": [4, 1], "x": 15, "y": 49, "flags": 4},
+ {"matrix": [4, 2], "x": 27, "y": 49, "flags": 4},
+ {"matrix": [4, 3], "x": 39, "y": 49, "flags": 4},
+ {"matrix": [4, 4], "x": 51, "y": 49, "flags": 4},
+ {"matrix": [4, 5], "x": 63, "y": 49, "flags": 4},
+ {"matrix": [4, 6], "x": 75, "y": 49, "flags": 4},
+ {"matrix": [4, 7], "x": 88, "y": 49, "flags": 4},
+ {"matrix": [4, 8], "x": 100, "y": 49, "flags": 4},
+ {"matrix": [4, 9], "x": 112, "y": 49, "flags": 4},
+ {"matrix": [4, 10], "x": 124, "y": 49, "flags": 4},
+ {"matrix": [4, 11], "x": 136, "y": 49, "flags": 4},
+ {"matrix": [4, 13], "x": 152, "y": 49, "flags": 1},
+ {"matrix": [4, 14], "x": 172, "y": 52, "flags": 1},
+ {"matrix": [4, 15], "x": 188, "y": 49, "flags": 4},
+ {"matrix": [4, 16], "x": 200, "y": 49, "flags": 4},
+ {"matrix": [4, 17], "x": 212, "y": 49, "flags": 4},
+ {"matrix": [5, 0], "x": 1, "y": 61, "flags": 1},
+ {"matrix": [5, 1], "x": 17, "y": 61, "flags": 1},
+ {"matrix": [5, 2], "x": 32, "y": 61, "flags": 1},
+ {"matrix": [5, 6], "x": 77, "y": 61, "flags": 4},
+ {"matrix": [5, 10], "x": 121, "y": 61, "flags": 1},
+ {"matrix": [5, 11], "x": 133, "y": 61, "flags": 1},
+ {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1},
+ {"matrix": [5, 13], "x": 160, "y": 64, "flags": 1},
+ {"matrix": [5, 14], "x": 172, "y": 64, "flags": 1},
+ {"matrix": [5, 15], "x": 184, "y": 64, "flags": 1},
+ {"matrix": [5, 16], "x": 200, "y": 61, "flags": 4},
+ {"matrix": [5, 17], "x": 212, "y": 61, "flags": 4},
+ {"matrix": [5, 5], "x": 224, "y": 55, "flags": 1}
+ ]
+ },
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0153"
+ },
"layouts": {
"LAYOUT_iso_99": {
"layout": [
@@ -38,7 +132,6 @@
{"matrix": [0, 16], "x": 16.25, "y": 0},
{"matrix": [0, 17], "x": 17.25, "y": 0},
{"matrix": [3, 12], "x": 18.5, "y": 0},
-
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.25},
@@ -57,7 +150,6 @@
{"matrix": [1, 16], "x": 16.5, "y": 1.25},
{"matrix": [1, 17], "x": 17.5, "y": 1.25},
{"matrix": [3, 14], "x": 18.5, "y": 1.25},
-
{"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2.25},
{"matrix": [2, 2], "x": 2.5, "y": 2.25},
@@ -74,7 +166,6 @@
{"matrix": [2, 15], "x": 15.5, "y": 2.25},
{"matrix": [2, 16], "x": 16.5, "y": 2.25},
{"matrix": [2, 17], "x": 17.5, "y": 2.25},
-
{"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3.25},
{"matrix": [3, 2], "x": 2.75, "y": 3.25},
@@ -93,7 +184,6 @@
{"matrix": [3, 16], "x": 16.5, "y": 3.25},
{"matrix": [3, 17], "x": 17.5, "y": 3.25},
{"matrix": [2, 14], "x": 18.5, "y": 2.25, "h": 2},
-
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4.25},
{"matrix": [4, 2], "x": 2.25, "y": 4.25},
@@ -111,7 +201,6 @@
{"matrix": [4, 15], "x": 15.5, "y": 4.25},
{"matrix": [4, 16], "x": 16.5, "y": 4.25},
{"matrix": [4, 17], "x": 17.5, "y": 4.25},
-
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
@@ -128,4 +217,4 @@
]
}
}
-}
+} \ No newline at end of file
diff --git a/keyboards/keychron/q5/iso_encoder/iso_encoder.c b/keyboards/keychron/q5/iso_encoder/iso_encoder.c
index 009e8043db..887931c054 100644
--- a/keyboards/keychron/q5/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q5/iso_encoder/iso_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
@@ -133,36 +133,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{1, L_7, J_7, K_7}
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, __, 1, 2, 3, 4, __, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
- { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, __, 31, 32, 33 },
- { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 64, 68, 48, 49, 50 },
- { 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 16, 63, 34, 65, 66, 67 },
- { 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, __, 81, 82, 83, 84, 85 },
- { 86, 87, 88, __, __, 98, 89, __, __, __, 90, 91, 92, 93, 94, 95, 96, 97 },
- },
- {
- // LED Index to Physical Position
- {0,0}, {24,0}, {36,0}, {48,0}, {60,0}, {78,0}, {90,0}, {103,0}, {115,0}, {133,0}, {145,0}, {157,0}, {169,0}, {184,0}, {196,0}, {208,0}, {224,0},
- {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {85,15}, {97,15}, {109,15}, {121,15}, {133,15}, {145,15}, {163,15}, {188,15}, {200,15}, {212,15}, {224,15},
- {3,26}, {18,26}, {30,26}, {42,26}, {54,26}, {66,26}, {78,26}, {91,26}, {103,26}, {115,26}, {127,26}, {139,26}, {151,26}, {188,26}, {200,26}, {212,26},
- {5,38}, {21,38}, {33,38}, {45,38}, {57,38}, {69,38}, {81,38}, {94,38}, {106,38}, {118,38}, {130,38}, {142,38}, {154,38}, {170,34}, {188,38}, {200,38}, {212,38}, {224,32},
- {3,49}, {15,49}, {27,49}, {39,49}, {51,49}, {63,49}, {75,49}, {88,49}, {100,49}, {112,49}, {124,49}, {136,49}, {152,49}, {172,52}, {188,49}, {200,49}, {212,49},
- {1,61}, {17,61}, {32,61}, {77,61}, {121,61}, {133,61}, {145,61}, {160,64}, {172,64}, {184,64}, {200,61}, {212,61}, {224,55},
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 8, 4, 4, 4,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 4, 4, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q5/iso_encoder/rules.mk b/keyboards/keychron/q5/iso_encoder/rules.mk
index 4c6e5bebf0..c0d1417299 100644
--- a/keyboards/keychron/q5/iso_encoder/rules.mk
+++ b/keyboards/keychron/q5/iso_encoder/rules.mk
@@ -1,20 +1,4 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-
# custom matrix setup
CUSTOM_MATRIX = lite
-SRC += matrix.c
+SRC += matrix.c \ No newline at end of file
diff --git a/keyboards/keychron/q5/q5.c b/keyboards/keychron/q5/q5.c
index 7a1cabcd1a..4026e9dea8 100644
--- a/keyboards/keychron/q5/q5.c
+++ b/keyboards/keychron/q5/q5.c
@@ -16,15 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b111111111111111111,
- 0b111111111111111111,
- 0b111111111111111111,
- 0b111111111111111111,
- 0b111111111111111111,
- 0b111111111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/q5/readme.md b/keyboards/keychron/q5/readme.md
index ac59839258..b78473cd2c 100644
--- a/keyboards/keychron/q5/readme.md
+++ b/keyboards/keychron/q5/readme.md
@@ -1,19 +1,27 @@
# Keychron Q5
+![Keychron Q5](https://i.imgur.com/hgBjdtTh.jpg)
+
A customizable 96% keyboard.
* Keyboard Maintainer: [Keychron](https://github.com/keychron)
* Hardware Supported: Keychron Q5
-* Hardware Availability: [Keychron](https://www.keychron.com)
+* Hardware Availability: [Keychron Q5 QMK Custom Mechanical Keyboard](https://www.keychron.com/products/keychron-q5-qmk-custom-mechanical-keyboard)
Make example for this keyboard (after setting up your build environment):
- make keychron/q5/ansi:default
+ make keychron/q5/ansi:default
+ make keychron/q5/ansi_encoder:default
+ make keychron/q5/iso:default
+ make keychron/q5/iso_encoder:default
Flashing example for this keyboard:
- make keychron/q5/ansi:default:flash
+ make keychron/q5/ansi:default:flash
+ make keychron/q5/ansi_encoder:default:flash
+ make keychron/q5/iso:default:flash
+ make keychron/q5/iso_encoder:default:flash
**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard.
-See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/keychron/q6/ansi/ansi.c b/keyboards/keychron/q6/ansi/ansi.c
index 80eaad02b3..b9f249e281 100644
--- a/keyboards/keychron/q6/ansi/ansi.c
+++ b/keyboards/keychron/q6/ansi/ansi.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q6/ansi/config.h b/keyboards/keychron/q6/ansi/config.h
index 703da35636..fd6fa66fe5 100644
--- a/keyboards/keychron/q6/ansi/config.h
+++ b/keyboards/keychron/q6/ansi/config.h
@@ -24,11 +24,6 @@
#define NO_PIN_START 11
#define NO_PIN_OFFSET 1
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 60
-#define DRIVER_2_LED_TOTAL 48
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED*/
#define CAPS_LOCK_LED_INDEX 61
diff --git a/keyboards/keychron/q6/ansi/info.json b/keyboards/keychron/q6/ansi/info.json
index 108cc46379..d3dbd4a092 100644
--- a/keyboards/keychron/q6/ansi/info.json
+++ b/keyboards/keychron/q6/ansi/info.json
@@ -8,9 +8,6 @@
"pid": "0x0160",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"processor": "STM32L432",
"bootloader": "stm32-dfu",
"layouts": {
diff --git a/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c
index 9c88533620..4064329099 100644
--- a/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q6/ansi_encoder/config.h b/keyboards/keychron/q6/ansi_encoder/config.h
index 573fa614a3..12af24d697 100644
--- a/keyboards/keychron/q6/ansi_encoder/config.h
+++ b/keyboards/keychron/q6/ansi_encoder/config.h
@@ -25,11 +25,6 @@
#define NO_PIN_NUM 10
#define CLR_REG_VAL 0x3FF
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 60
-#define DRIVER_2_LED_TOTAL 48
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/q6/ansi_encoder/info.json b/keyboards/keychron/q6/ansi_encoder/info.json
index fc2da19f73..8e85336313 100644
--- a/keyboards/keychron/q6/ansi_encoder/info.json
+++ b/keyboards/keychron/q6/ansi_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x0161",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
"rotary": [
{"pin_a": "C14", "pin_b": "A2"}
diff --git a/keyboards/keychron/q6/config.h b/keyboards/keychron/q6/config.h
index 2edceb09d7..a9d2a95b97 100644
--- a/keyboards/keychron/q6/config.h
+++ b/keyboards/keychron/q6/config.h
@@ -29,68 +29,3 @@
#define SNLED27351_CURRENT_TUNE \
{ 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52 }
-
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {5, 4} }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/keychron/q6/info.json b/keyboards/keychron/q6/info.json
new file mode 100644
index 0000000000..94a45db562
--- /dev/null
+++ b/keyboards/keychron/q6/info.json
@@ -0,0 +1,37 @@
+{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "dip_switch": {
+ "matrix_grid": [ [5, 4] ]
+ },
+ "rgb_matrix": {
+ "animations": {
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ }
+}
diff --git a/keyboards/keychron/q6/iso/config.h b/keyboards/keychron/q6/iso/config.h
index 46c9e1c33a..cfb2ed5663 100644
--- a/keyboards/keychron/q6/iso/config.h
+++ b/keyboards/keychron/q6/iso/config.h
@@ -24,11 +24,6 @@
#define NO_PIN_START 11
#define NO_PIN_OFFSET 1
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 60
-#define DRIVER_2_LED_TOTAL 49
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED*/
#define CAPS_LOCK_LED_INDEX 60
diff --git a/keyboards/keychron/q6/iso/info.json b/keyboards/keychron/q6/iso/info.json
index 269605ff8b..b88af93988 100644
--- a/keyboards/keychron/q6/iso/info.json
+++ b/keyboards/keychron/q6/iso/info.json
@@ -8,9 +8,6 @@
"pid": "0x0162",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"processor": "STM32L432",
"bootloader": "stm32-dfu",
"layouts": {
diff --git a/keyboards/keychron/q6/iso/iso.c b/keyboards/keychron/q6/iso/iso.c
index d2aa010c05..8cdee4cf3b 100644
--- a/keyboards/keychron/q6/iso/iso.c
+++ b/keyboards/keychron/q6/iso/iso.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q6/iso_encoder/config.h b/keyboards/keychron/q6/iso_encoder/config.h
index 512a33bafd..1320d544fd 100644
--- a/keyboards/keychron/q6/iso_encoder/config.h
+++ b/keyboards/keychron/q6/iso_encoder/config.h
@@ -25,11 +25,6 @@
#define NO_PIN_NUM 10
#define CLR_REG_VAL 0x3FF
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 60
-#define DRIVER_2_LED_TOTAL 49
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/q6/iso_encoder/info.json b/keyboards/keychron/q6/iso_encoder/info.json
index e5aa0bd8f5..54d4613b9c 100644
--- a/keyboards/keychron/q6/iso_encoder/info.json
+++ b/keyboards/keychron/q6/iso_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x0163",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
"rotary": [
{"pin_a": "C14", "pin_b": "A2"}
diff --git a/keyboards/keychron/q6/iso_encoder/iso_encoder.c b/keyboards/keychron/q6/iso_encoder/iso_encoder.c
index 66e066b839..5ff71379c9 100644
--- a/keyboards/keychron/q6/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q6/iso_encoder/iso_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q6/q6.c b/keyboards/keychron/q6/q6.c
index 8a9750e9de..c1dc38a3fc 100644
--- a/keyboards/keychron/q6/q6.c
+++ b/keyboards/keychron/q6/q6.c
@@ -16,15 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b11111111111111111111,
- 0b11111111111111111111,
- 0b11111111111111111111,
- 0b11111111111111111111,
- 0b11111111111111111111,
- 0b11111111111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/q60/ansi/ansi.c b/keyboards/keychron/q60/ansi/ansi.c
index ac72737146..f02d45b42a 100644
--- a/keyboards/keychron/q60/ansi/ansi.c
+++ b/keyboards/keychron/q60/ansi/ansi.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q60/ansi/config.h b/keyboards/keychron/q60/ansi/config.h
deleted file mode 100644
index 05810cce64..0000000000
--- a/keyboards/keychron/q60/ansi/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2022 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 60
diff --git a/keyboards/keychron/q60/ansi/info.json b/keyboards/keychron/q60/ansi/info.json
index f5832b2d8f..1d074c5e3c 100644
--- a/keyboards/keychron/q60/ansi/info.json
+++ b/keyboards/keychron/q60/ansi/info.json
@@ -8,9 +8,6 @@
"pid": "0x01C0",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"],
"rows": ["B4", "B3", "A15", "A14", "A13"]
diff --git a/keyboards/keychron/q60/config.h b/keyboards/keychron/q60/config.h
index 6b6c3c5f48..5e8e40cc5a 100644
--- a/keyboards/keychron/q60/config.h
+++ b/keyboards/keychron/q60/config.h
@@ -29,69 +29,4 @@
#define SNLED27351_CURRENT_TUNE \
{ 0xD8, 0xD8, 0x60, 0xD8, 0xD8, 0x60, 0xD8, 0xD8, 0x60, 0xD8, 0xD8, 0x60 }
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {4,4} }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
#define DYNAMIC_KEYMAP_LAYER_COUNT 6
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/keychron/q60/info.json b/keyboards/keychron/q60/info.json
new file mode 100644
index 0000000000..553146eb39
--- /dev/null
+++ b/keyboards/keychron/q60/info.json
@@ -0,0 +1,37 @@
+{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "dip_switch": {
+ "matrix_grid": [ [4, 4] ]
+ },
+ "rgb_matrix": {
+ "animations": {
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ }
+}
diff --git a/keyboards/keychron/q60/q60.c b/keyboards/keychron/q60/q60.c
index d97f72fb8e..c6f2d1a38c 100644
--- a/keyboards/keychron/q60/q60.c
+++ b/keyboards/keychron/q60/q60.c
@@ -16,14 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b11111111111111,
- 0b11111111111111,
- 0b11111111111111,
- 0b11111111111111,
- 0b11111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c
index 8e9b37b806..3ed44a7387 100644
--- a/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q65/ansi_encoder/config.h b/keyboards/keychron/q65/ansi_encoder/config.h
index f57797677e..be6e6c94d6 100644
--- a/keyboards/keychron/q65/ansi_encoder/config.h
+++ b/keyboards/keychron/q65/ansi_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 31
-#define DRIVER_2_LED_TOTAL 41
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/q65/ansi_encoder/info.json b/keyboards/keychron/q65/ansi_encoder/info.json
index a42d7d289c..2d622b869c 100644
--- a/keyboards/keychron/q65/ansi_encoder/info.json
+++ b/keyboards/keychron/q65/ansi_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x01B1",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
"rotary": [
{"pin_a": "A10", "pin_b": "A8"}
diff --git a/keyboards/keychron/q65/config.h b/keyboards/keychron/q65/config.h
index 84c4e9fc17..c451568e76 100644
--- a/keyboards/keychron/q65/config.h
+++ b/keyboards/keychron/q65/config.h
@@ -40,69 +40,4 @@
#define SNLED27351_CURRENT_TUNE \
{ 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58 }
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {4,4} }
-
-/* Turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/keychron/q65/info.json b/keyboards/keychron/q65/info.json
new file mode 100644
index 0000000000..553146eb39
--- /dev/null
+++ b/keyboards/keychron/q65/info.json
@@ -0,0 +1,37 @@
+{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "dip_switch": {
+ "matrix_grid": [ [4, 4] ]
+ },
+ "rgb_matrix": {
+ "animations": {
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ }
+}
diff --git a/keyboards/keychron/q65/q65.c b/keyboards/keychron/q65/q65.c
index 18fa8697c7..e293733bfe 100644
--- a/keyboards/keychron/q65/q65.c
+++ b/keyboards/keychron/q65/q65.c
@@ -16,14 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/q7/ansi/ansi.c b/keyboards/keychron/q7/ansi/ansi.c
index 190c110a77..828028b39e 100644
--- a/keyboards/keychron/q7/ansi/ansi.c
+++ b/keyboards/keychron/q7/ansi/ansi.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
@@ -105,33 +105,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{1, F_16, D_16, E_16},
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
- { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
- { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, __, 44, 45, 46 },
- { 47, __, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, __, 58, 59, 60 },
- { 61, 62, 63, __, __, __, 64, __, __, 65, 66, 67, 68, 69, 70, 71 },
- },
- {
- // LED Index to Physical Position
- {0,0}, {14,0}, {28,0}, {42,0}, {56,0}, {70,0}, {84,0}, {98,0}, {112,0}, {126,0}, {140,0}, {154,0}, {168,0}, {189,0}, {210,0}, {224,0},
- {4,16}, {21,16}, {35,16}, {49,16}, {63,16}, {77,16}, {91,16}, {105,16}, {119,16}, {133,16}, {147,16}, {161,16}, {175,16}, {192,16}, {210,16}, {224,16},
- {5,32}, {25,32}, {38,32}, {52,32}, {66,32}, {80,32}, {94,32}, {108,32}, {122,32}, {136,32}, {150,32}, {164,32}, {187,32}, {210,32}, {224,32},
- {9,48}, {32,48}, {45,48}, {59,48}, {73,48}, {87,48}, {101,48}, {115,48}, {129,48}, {143,48}, {157,48}, {184,48}, {210,48}, {224,48},
- {2,64}, {19,64}, {37,64}, {89,64}, {140,64}, {154,64}, {168,64}, {182,64}, {196,64}, {210,64}, {224,64},
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q7/ansi/config.h b/keyboards/keychron/q7/ansi/config.h
index 32727a13ce..ef9b58298c 100644
--- a/keyboards/keychron/q7/ansi/config.h
+++ b/keyboards/keychron/q7/ansi/config.h
@@ -16,10 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 37
-#define DRIVER_2_LED_TOTAL 35
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 32
diff --git a/keyboards/keychron/q7/ansi/info.json b/keyboards/keychron/q7/ansi/info.json
index 717fe357b7..62cff888e1 100644
--- a/keyboards/keychron/q7/ansi/info.json
+++ b/keyboards/keychron/q7/ansi/info.json
@@ -1,23 +1,88 @@
{
- "keyboard_name": "Keychron Q7",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0170",
- "device_version": "1.0.0"
- },
"rgb_matrix": {
- "driver": "snled27351"
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 70, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 84, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 98, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 112, "y": 0, "flags": 4},
+ {"matrix": [0, 9], "x": 126, "y": 0, "flags": 4},
+ {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4},
+ {"matrix": [0, 11], "x": 154, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 168, "y": 0, "flags": 4},
+ {"matrix": [0, 13], "x": 189, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 210, "y": 0, "flags": 1},
+ {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
+ {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4},
+ {"matrix": [1, 2], "x": 35, "y": 16, "flags": 4},
+ {"matrix": [1, 3], "x": 49, "y": 16, "flags": 4},
+ {"matrix": [1, 4], "x": 63, "y": 16, "flags": 4},
+ {"matrix": [1, 5], "x": 77, "y": 16, "flags": 4},
+ {"matrix": [1, 6], "x": 91, "y": 16, "flags": 4},
+ {"matrix": [1, 7], "x": 105, "y": 16, "flags": 4},
+ {"matrix": [1, 8], "x": 119, "y": 16, "flags": 4},
+ {"matrix": [1, 9], "x": 133, "y": 16, "flags": 4},
+ {"matrix": [1, 10], "x": 147, "y": 16, "flags": 4},
+ {"matrix": [1, 11], "x": 161, "y": 16, "flags": 4},
+ {"matrix": [1, 12], "x": 175, "y": 16, "flags": 4},
+ {"matrix": [1, 13], "x": 192, "y": 16, "flags": 4},
+ {"matrix": [1, 14], "x": 210, "y": 16, "flags": 1},
+ {"matrix": [1, 15], "x": 224, "y": 16, "flags": 1},
+
+ {"matrix": [2, 0], "x": 5, "y": 32, "flags": 8},
+ {"matrix": [2, 1], "x": 25, "y": 32, "flags": 4},
+ {"matrix": [2, 2], "x": 38, "y": 32, "flags": 4},
+ {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4},
+ {"matrix": [2, 4], "x": 66, "y": 32, "flags": 4},
+ {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
+ {"matrix": [2, 6], "x": 94, "y": 32, "flags": 4},
+ {"matrix": [2, 7], "x": 108, "y": 32, "flags": 4},
+ {"matrix": [2, 8], "x": 122, "y": 32, "flags": 4},
+ {"matrix": [2, 9], "x": 136, "y": 32, "flags": 4},
+ {"matrix": [2, 10], "x": 150, "y": 32, "flags": 4},
+ {"matrix": [2, 11], "x": 164, "y": 32, "flags": 4},
+ {"matrix": [2, 13], "x": 187, "y": 32, "flags": 1},
+ {"matrix": [2, 14], "x": 210, "y": 32, "flags": 1},
+ {"matrix": [2, 15], "x": 224, "y": 32, "flags": 1},
+
+ {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
+ {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4},
+ {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4},
+ {"matrix": [3, 4], "x": 59, "y": 48, "flags": 4},
+ {"matrix": [3, 5], "x": 73, "y": 48, "flags": 4},
+ {"matrix": [3, 6], "x": 87, "y": 48, "flags": 4},
+ {"matrix": [3, 7], "x": 101, "y": 48, "flags": 4},
+ {"matrix": [3, 8], "x": 115, "y": 48, "flags": 4},
+ {"matrix": [3, 9], "x": 129, "y": 48, "flags": 4},
+ {"matrix": [3, 10], "x": 143, "y": 48, "flags": 4},
+ {"matrix": [3, 11], "x": 157, "y": 48, "flags": 4},
+ {"matrix": [3, 13], "x": 184, "y": 48, "flags": 1},
+ {"matrix": [3, 14], "x": 210, "y": 48, "flags": 1},
+ {"matrix": [3, 15], "x": 224, "y": 48, "flags": 1},
+
+ {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
+ {"matrix": [4, 1], "x": 19, "y": 64, "flags": 1},
+ {"matrix": [4, 2], "x": 37, "y": 64, "flags": 1},
+ {"matrix": [4, 6], "x": 89, "y": 64, "flags": 4},
+ {"matrix": [4, 9], "x": 140, "y": 64, "flags": 1},
+ {"matrix": [4, 10], "x": 154, "y": 64, "flags": 1},
+ {"matrix": [4, 11], "x": 168, "y": 64, "flags": 1},
+ {"matrix": [4, 12], "x": 182, "y": 64, "flags": 1},
+ {"matrix": [4, 13], "x": 196, "y": 64, "flags": 1},
+ {"matrix": [4, 14], "x": 210, "y": 64, "flags": 1},
+ {"matrix": [4, 15], "x": 224, "y": 64, "flags": 1}
+ ]
},
- "matrix_pins": {
- "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"],
- "rows": ["B4", "B3", "A15", "A14", "A13"]
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0170"
},
- "diode_direction": "ROW2COL",
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
"layouts": {
"LAYOUT_ansi_72": {
"layout": [
@@ -85,7 +150,6 @@
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [3, 14], "x": 15, "y": 3},
{"matrix": [3, 15], "x": 16, "y": 3},
-
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
@@ -100,4 +164,4 @@
]
}
}
-}
+} \ No newline at end of file
diff --git a/keyboards/keychron/q7/ansi/rules.mk b/keyboards/keychron/q7/ansi/rules.mk
index cf31e094cb..6e7633bfe0 100644
--- a/keyboards/keychron/q7/ansi/rules.mk
+++ b/keyboards/keychron/q7/ansi/rules.mk
@@ -1,14 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
+# This file intentionally left blank
diff --git a/keyboards/keychron/q7/config.h b/keyboards/keychron/q7/config.h
index 4794c80011..4a2a6af9e3 100644
--- a/keyboards/keychron/q7/config.h
+++ b/keyboards/keychron/q7/config.h
@@ -30,70 +30,3 @@
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
#define SNLED27351_CURRENT_TUNE \
{ 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80 }
-
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {4,4} }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/keychron/q7/info.json b/keyboards/keychron/q7/info.json
new file mode 100644
index 0000000000..6b8a94ce99
--- /dev/null
+++ b/keyboards/keychron/q7/info.json
@@ -0,0 +1,64 @@
+{
+ "manufacturer": "Keychron",
+ "keyboard_name": "Keychron Q7",
+ "maintainer": "lalalademaxiya1",
+ "bootloader": "stm32-dfu",
+ "diode_direction": "ROW2COL",
+ "dip_switch": {
+ "matrix_grid": [ [4, 4] ]
+ },
+ "dynamic_keymap": {
+ "layer_count": 5
+ },
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "dip_switch": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "matrix_pins": {
+ "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"],
+ "rows": ["B4", "B3", "A15", "A14", "A13"]
+ },
+ "processor": "STM32L432",
+ "rgb_matrix": {
+ "animations": {
+ "band_spiral_val": true,
+ "breathing": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "cycle_up_down": true,
+ "digital_rain": true,
+ "dual_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "rainbow_beacon": true,
+ "rainbow_moving_chevron": true,
+ "solid_reactive_multinexus": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_simple": true,
+ "solid_splash": true,
+ "splash": true,
+ "typing_heatmap": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ },
+ "url": "https://github.com/Keychron",
+ "usb": {
+ "vid": "0x3434"
+ }
+} \ No newline at end of file
diff --git a/keyboards/keychron/q7/iso/config.h b/keyboards/keychron/q7/iso/config.h
index dc9813f6e8..edeb79e262 100644
--- a/keyboards/keychron/q7/iso/config.h
+++ b/keyboards/keychron/q7/iso/config.h
@@ -16,10 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 37
-#define DRIVER_2_LED_TOTAL 36
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 31
diff --git a/keyboards/keychron/q7/iso/info.json b/keyboards/keychron/q7/iso/info.json
index d57c5b17b9..d98ec8fa5e 100644
--- a/keyboards/keychron/q7/iso/info.json
+++ b/keyboards/keychron/q7/iso/info.json
@@ -1,23 +1,89 @@
{
- "keyboard_name": "Keychron Q7",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0172",
- "device_version": "1.0.0"
- },
"rgb_matrix": {
- "driver": "snled27351"
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 70, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 84, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 98, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 112, "y": 0, "flags": 4},
+ {"matrix": [0, 9], "x": 126, "y": 0, "flags": 4},
+ {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4},
+ {"matrix": [0, 11], "x": 154, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 168, "y": 0, "flags": 4},
+ {"matrix": [0, 13], "x": 189, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 210, "y": 0, "flags": 1},
+ {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
+ {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4},
+ {"matrix": [1, 2], "x": 35, "y": 16, "flags": 4},
+ {"matrix": [1, 3], "x": 49, "y": 16, "flags": 4},
+ {"matrix": [1, 4], "x": 63, "y": 16, "flags": 4},
+ {"matrix": [1, 5], "x": 77, "y": 16, "flags": 4},
+ {"matrix": [1, 6], "x": 91, "y": 16, "flags": 4},
+ {"matrix": [1, 7], "x": 105, "y": 16, "flags": 4},
+ {"matrix": [1, 8], "x": 119, "y": 16, "flags": 4},
+ {"matrix": [1, 9], "x": 133, "y": 16, "flags": 4},
+ {"matrix": [1, 10], "x": 147, "y": 16, "flags": 4},
+ {"matrix": [1, 11], "x": 161, "y": 16, "flags": 4},
+ {"matrix": [1, 12], "x": 175, "y": 16, "flags": 4},
+ {"matrix": [1, 14], "x": 210, "y": 16, "flags": 1},
+ {"matrix": [1, 15], "x": 224, "y": 16, "flags": 1},
+
+ {"matrix": [2, 0], "x": 5, "y": 32, "flags": 8},
+ {"matrix": [2, 1], "x": 25, "y": 32, "flags": 4},
+ {"matrix": [2, 2], "x": 38, "y": 32, "flags": 4},
+ {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4},
+ {"matrix": [2, 4], "x": 66, "y": 32, "flags": 4},
+ {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
+ {"matrix": [2, 6], "x": 94, "y": 32, "flags": 4},
+ {"matrix": [2, 7], "x": 108, "y": 32, "flags": 4},
+ {"matrix": [2, 8], "x": 122, "y": 32, "flags": 4},
+ {"matrix": [2, 9], "x": 136, "y": 32, "flags": 4},
+ {"matrix": [2, 10], "x": 150, "y": 32, "flags": 4},
+ {"matrix": [2, 11], "x": 164, "y": 32, "flags": 4},
+ {"matrix": [2, 13], "x": 178, "y": 32, "flags": 4},
+ {"matrix": [1, 13], "x": 197, "y": 27, "flags": 1},
+ {"matrix": [2, 14], "x": 210, "y": 32, "flags": 1},
+ {"matrix": [2, 15], "x": 224, "y": 32, "flags": 1},
+
+ {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1},
+ {"matrix": [3, 1], "x": 18, "y": 48, "flags": 4},
+ {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4},
+ {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4},
+ {"matrix": [3, 4], "x": 59, "y": 48, "flags": 4},
+ {"matrix": [3, 5], "x": 73, "y": 48, "flags": 4},
+ {"matrix": [3, 6], "x": 87, "y": 48, "flags": 4},
+ {"matrix": [3, 7], "x": 101, "y": 48, "flags": 4},
+ {"matrix": [3, 8], "x": 115, "y": 48, "flags": 4},
+ {"matrix": [3, 9], "x": 129, "y": 48, "flags": 4},
+ {"matrix": [3, 10], "x": 143, "y": 48, "flags": 4},
+ {"matrix": [3, 11], "x": 157, "y": 48, "flags": 4},
+ {"matrix": [3, 13], "x": 184, "y": 48, "flags": 1},
+ {"matrix": [3, 14], "x": 210, "y": 48, "flags": 1},
+ {"matrix": [3, 15], "x": 224, "y": 48, "flags": 1},
+
+ {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
+ {"matrix": [4, 1], "x": 19, "y": 64, "flags": 1},
+ {"matrix": [4, 2], "x": 37, "y": 64, "flags": 1},
+ {"matrix": [4, 6], "x": 89, "y": 64, "flags": 4},
+ {"matrix": [4, 9], "x": 140, "y": 64, "flags": 1},
+ {"matrix": [4, 10], "x": 154, "y": 64, "flags": 1},
+ {"matrix": [4, 11], "x": 168, "y": 64, "flags": 1},
+ {"matrix": [4, 12], "x": 182, "y": 64, "flags": 1},
+ {"matrix": [4, 13], "x": 196, "y": 64, "flags": 1},
+ {"matrix": [4, 14], "x": 210, "y": 64, "flags": 1},
+ {"matrix": [4, 15], "x": 224, "y": 64, "flags": 1}
+ ]
},
- "matrix_pins": {
- "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"],
- "rows": ["B4", "B3", "A15", "A14", "A13"]
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0172"
},
- "diode_direction": "ROW2COL",
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
"layouts": {
"LAYOUT_iso_73": {
"layout": [
@@ -101,4 +167,4 @@
]
}
}
-}
+} \ No newline at end of file
diff --git a/keyboards/keychron/q7/iso/iso.c b/keyboards/keychron/q7/iso/iso.c
index 13354b9f0b..85774429b8 100644
--- a/keyboards/keychron/q7/iso/iso.c
+++ b/keyboards/keychron/q7/iso/iso.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
@@ -104,33 +104,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{1, F_16, D_16, E_16},
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
- { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 44, 29, 30 },
- { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, __, 43, 45, 46 },
- { 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, __, 59, 60, 61 },
- { 62, 63, 64, __, __, __, 65, __, __, 66, 67, 68, 69, 70, 71, 72 },
- },
- {
- // LED Index to Physical Position
- {0,0}, {14,0}, {28,0}, {42,0}, {56,0}, {70,0}, {84,0}, {98,0}, {112,0}, {126,0}, {140,0}, {154,0}, {168,0}, {189,0}, {210,0}, {224,0},
- {4,16}, {21,16}, {35,16}, {49,16}, {63,16}, {77,16}, {91,16}, {105,16}, {119,16}, {133,16}, {147,16}, {161,16}, {175,16}, {210,16}, {224,16},
- {5,32}, {25,32}, {38,32}, {52,32}, {66,32}, {80,32}, {94,32}, {108,32}, {122,32}, {136,32}, {150,32}, {164,32}, {178,32}, {197,27}, {210,32}, {224,32},
- {2,48}, {18,48}, {32,48}, {45,48}, {59,48}, {73,48}, {87,48}, {101,48}, {115,48}, {129,48}, {143,48}, {157,48}, {184,48}, {210,48}, {224,48},
- {2,64}, {19,64}, {37,64}, {89,64}, {140,64}, {154,64}, {168,64}, {182,64}, {196,64}, {210,64}, {224,64},
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q7/iso/rules.mk b/keyboards/keychron/q7/iso/rules.mk
index cf31e094cb..6e7633bfe0 100644
--- a/keyboards/keychron/q7/iso/rules.mk
+++ b/keyboards/keychron/q7/iso/rules.mk
@@ -1,14 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
+# This file intentionally left blank
diff --git a/keyboards/keychron/q7/q7.c b/keyboards/keychron/q7/q7.c
index abd4ac11f0..d020f6ab43 100644
--- a/keyboards/keychron/q7/q7.c
+++ b/keyboards/keychron/q7/q7.c
@@ -16,14 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/q7/readme.md b/keyboards/keychron/q7/readme.md
index ea48464222..d6fedb1493 100644
--- a/keyboards/keychron/q7/readme.md
+++ b/keyboards/keychron/q7/readme.md
@@ -1,19 +1,23 @@
# Keychron Q7
+![Keychron Q7](https://i.imgur.com/dMnFpx0h.jpg)
+
A customizable 70% keyboard.
* Keyboard Maintainer: [Keychron](https://github.com/keychron)
* Hardware Supported: Keychron Q7
-* Hardware Availability: [Keychron](https://www.keychron.com)
+* Hardware Availability: [Keychron Q7 QMK Custom Mechanical Keyboard](https://www.keychron.com/products/keychron-q7-qmk-custom-mechanical-keyboard)
Make example for this keyboard (after setting up your build environment):
make keychron/q7/ansi:default
+ make keychron/q7/iso:default
-Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
+Flashing example for this keyboard:
make keychron/q7/ansi:default:flash
+ make keychron/q7/iso:default:flash
**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard.
-See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/keychron/q8/ansi/ansi.c b/keyboards/keychron/q8/ansi/ansi.c
index 3bb10b383d..fbb6813448 100644
--- a/keyboards/keychron/q8/ansi/ansi.c
+++ b/keyboards/keychron/q8/ansi/ansi.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
@@ -103,33 +103,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{1, F_1, D_1, E_1}
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
- { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
- { 30, 31, 32, 33, 34, 35, __, 36, 37, 38, 39, 40, 41, 42, 43 },
- { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 },
- { 58, 59, 60, 61, __, __, 62, 63, 64, 65, __, __, 66, 67, 68 },
- },
- {
- // LED Index to Physical Position
- {7,1}, {20,1}, {33,0}, {48,3}, {61,6}, {74,8 }, {87,11}, {106,11}, {119,8}, {132,6}, {145,3}, {160,0}, {173,1}, {193,1}, {220,0},
- {7,14}, {24,14}, {39,14}, {52,17}, {65,20}, {78,22}, {103,25}, {116,22}, {129,20}, {142,17}, {155,14}, {170,14}, {183,14}, {200,14}, {222,16},
- {6,27}, {24,27}, {39,28}, {52,30}, {65,33}, {78,36}, {109,37}, {122,34}, {135,32}, {148,29}, {162,27}, {176,27}, {197,27}, {224,29},
- {7,40}, {28,40}, {43,42}, {56,44}, {69,47}, {82,50}, {102,52}, {115,49}, {128,46}, {141,44}, {154,41}, {169,40}, {187,40}, {209,43},
- {0,53}, {17,53}, {42,55}, {65,60}, {86,64}, {107,64}, {131,59}, {156,54}, {196,56}, {209,56}, {222,56},
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 4, 1, 1, 1, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q8/ansi/config.h b/keyboards/keychron/q8/ansi/config.h
index cd2d037bb3..9cd663a216 100644
--- a/keyboards/keychron/q8/ansi/config.h
+++ b/keyboards/keychron/q8/ansi/config.h
@@ -16,10 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 35
-#define DRIVER_2_LED_TOTAL 34
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 30
diff --git a/keyboards/keychron/q8/ansi/info.json b/keyboards/keychron/q8/ansi/info.json
index f733004270..2580b4163e 100644
--- a/keyboards/keychron/q8/ansi/info.json
+++ b/keyboards/keychron/q8/ansi/info.json
@@ -1,23 +1,85 @@
{
- "keyboard_name": "Keychron Q8",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0180",
- "device_version": "1.0.0"
- },
"rgb_matrix": {
- "driver": "snled27351"
+ "layout": [
+ {"matrix": [0, 0], "x": 7, "y": 1, "flags": 1},
+ {"matrix": [0, 1], "x": 20, "y": 1, "flags": 4},
+ {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 48, "y": 3, "flags": 4},
+ {"matrix": [0, 4], "x": 61, "y": 6, "flags": 4},
+ {"matrix": [0, 5], "x": 74, "y": 8, "flags": 4},
+ {"matrix": [0, 6], "x": 87, "y": 11, "flags": 4},
+ {"matrix": [0, 7], "x": 106, "y": 11, "flags": 4},
+ {"matrix": [0, 8], "x": 119, "y": 8, "flags": 4},
+ {"matrix": [0, 9], "x": 132, "y": 6, "flags": 4},
+ {"matrix": [0, 10], "x": 145, "y": 3, "flags": 4},
+ {"matrix": [0, 11], "x": 160, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 173, "y": 1, "flags": 4},
+ {"matrix": [0, 13], "x": 193, "y": 1, "flags": 1},
+ {"matrix": [0, 14], "x": 220, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 7, "y": 14, "flags": 1},
+ {"matrix": [1, 1], "x": 24, "y": 14, "flags": 4},
+ {"matrix": [1, 2], "x": 39, "y": 14, "flags": 4},
+ {"matrix": [1, 3], "x": 52, "y": 17, "flags": 4},
+ {"matrix": [1, 4], "x": 65, "y": 20, "flags": 4},
+ {"matrix": [1, 5], "x": 78, "y": 22, "flags": 4},
+ {"matrix": [1, 6], "x": 103, "y": 25, "flags": 4},
+ {"matrix": [1, 7], "x": 116, "y": 22, "flags": 4},
+ {"matrix": [1, 8], "x": 129, "y": 20, "flags": 4},
+ {"matrix": [1, 9], "x": 142, "y": 17, "flags": 4},
+ {"matrix": [1, 10], "x": 155, "y": 14, "flags": 4},
+ {"matrix": [1, 11], "x": 170, "y": 14, "flags": 4},
+ {"matrix": [1, 12], "x": 183, "y": 14, "flags": 4},
+ {"matrix": [1, 13], "x": 200, "y": 14, "flags": 4},
+ {"matrix": [1, 14], "x": 222, "y": 16, "flags": 1},
+
+ {"matrix": [2, 0], "x": 6, "y": 27, "flags": 8},
+ {"matrix": [2, 1], "x": 24, "y": 27, "flags": 4},
+ {"matrix": [2, 2], "x": 39, "y": 28, "flags": 4},
+ {"matrix": [2, 3], "x": 52, "y": 30, "flags": 4},
+ {"matrix": [2, 4], "x": 65, "y": 33, "flags": 4},
+ {"matrix": [2, 5], "x": 78, "y": 36, "flags": 4},
+ {"matrix": [2, 7], "x": 109, "y": 37, "flags": 4},
+ {"matrix": [2, 8], "x": 122, "y": 34, "flags": 4},
+ {"matrix": [2, 9], "x": 135, "y": 32, "flags": 4},
+ {"matrix": [2, 10], "x": 148, "y": 29, "flags": 4},
+ {"matrix": [2, 11], "x": 162, "y": 27, "flags": 4},
+ {"matrix": [2, 12], "x": 176, "y": 27, "flags": 4},
+ {"matrix": [2, 13], "x": 197, "y": 27, "flags": 1},
+ {"matrix": [2, 14], "x": 224, "y": 29, "flags": 1},
+
+ {"matrix": [3, 0], "x": 7, "y": 40, "flags": 1},
+ {"matrix": [3, 2], "x": 28, "y": 40, "flags": 4},
+ {"matrix": [3, 3], "x": 43, "y": 42, "flags": 4},
+ {"matrix": [3, 4], "x": 56, "y": 44, "flags": 4},
+ {"matrix": [3, 5], "x": 69, "y": 47, "flags": 4},
+ {"matrix": [3, 6], "x": 82, "y": 50, "flags": 4},
+ {"matrix": [3, 7], "x": 102, "y": 52, "flags": 4},
+ {"matrix": [3, 8], "x": 115, "y": 49, "flags": 4},
+ {"matrix": [3, 9], "x": 128, "y": 46, "flags": 4},
+ {"matrix": [3, 10], "x": 141, "y": 44, "flags": 4},
+ {"matrix": [3, 11], "x": 154, "y": 41, "flags": 4},
+ {"matrix": [3, 12], "x": 169, "y": 40, "flags": 4},
+ {"matrix": [3, 13], "x": 187, "y": 40, "flags": 1},
+ {"matrix": [3, 14], "x": 209, "y": 43, "flags": 1},
+
+ {"matrix": [4, 0], "x": 0, "y": 53, "flags": 1},
+ {"matrix": [4, 1], "x": 17, "y": 53, "flags": 1},
+ {"matrix": [4, 2], "x": 42, "y": 55, "flags": 1},
+ {"matrix": [4, 3], "x": 65, "y": 60, "flags": 4},
+ {"matrix": [4, 6], "x": 86, "y": 64, "flags": 1},
+ {"matrix": [4, 7], "x": 107, "y": 64, "flags": 1},
+ {"matrix": [4, 8], "x": 131, "y": 59, "flags": 4},
+ {"matrix": [4, 9], "x": 156, "y": 54, "flags": 1},
+ {"matrix": [4, 12], "x": 196, "y": 56, "flags": 1},
+ {"matrix": [4, 13], "x": 209, "y": 56, "flags": 1},
+ {"matrix": [4, 14], "x": 222, "y": 56, "flags": 1}
+ ]
},
- "matrix_pins": {
- "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
- "rows": ["B4", "B3", "A15", "A14", "A13"]
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0180"
},
- "diode_direction": "ROW2COL",
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
"layouts": {
"LAYOUT_ansi_69": {
"layout": [
@@ -97,4 +159,4 @@
]
}
}
-}
+} \ No newline at end of file
diff --git a/keyboards/keychron/q8/ansi/rules.mk b/keyboards/keychron/q8/ansi/rules.mk
index cf31e094cb..7ff128fa69 100644
--- a/keyboards/keychron/q8/ansi/rules.mk
+++ b/keyboards/keychron/q8/ansi/rules.mk
@@ -1,14 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/keychron/q8/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q8/ansi_encoder/ansi_encoder.c
index 3bb10b383d..fbb6813448 100644
--- a/keyboards/keychron/q8/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q8/ansi_encoder/ansi_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
@@ -103,33 +103,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{1, F_1, D_1, E_1}
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
- { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
- { 30, 31, 32, 33, 34, 35, __, 36, 37, 38, 39, 40, 41, 42, 43 },
- { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 },
- { 58, 59, 60, 61, __, __, 62, 63, 64, 65, __, __, 66, 67, 68 },
- },
- {
- // LED Index to Physical Position
- {7,1}, {20,1}, {33,0}, {48,3}, {61,6}, {74,8 }, {87,11}, {106,11}, {119,8}, {132,6}, {145,3}, {160,0}, {173,1}, {193,1}, {220,0},
- {7,14}, {24,14}, {39,14}, {52,17}, {65,20}, {78,22}, {103,25}, {116,22}, {129,20}, {142,17}, {155,14}, {170,14}, {183,14}, {200,14}, {222,16},
- {6,27}, {24,27}, {39,28}, {52,30}, {65,33}, {78,36}, {109,37}, {122,34}, {135,32}, {148,29}, {162,27}, {176,27}, {197,27}, {224,29},
- {7,40}, {28,40}, {43,42}, {56,44}, {69,47}, {82,50}, {102,52}, {115,49}, {128,46}, {141,44}, {154,41}, {169,40}, {187,40}, {209,43},
- {0,53}, {17,53}, {42,55}, {65,60}, {86,64}, {107,64}, {131,59}, {156,54}, {196,56}, {209,56}, {222,56},
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 4, 1, 1, 1, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q8/ansi_encoder/config.h b/keyboards/keychron/q8/ansi_encoder/config.h
index 63d16c21af..9cd663a216 100644
--- a/keyboards/keychron/q8/ansi_encoder/config.h
+++ b/keyboards/keychron/q8/ansi_encoder/config.h
@@ -16,13 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 35
-#define DRIVER_2_LED_TOTAL 34
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
-/* Encoder Configuration */
-#define ENCODER_DEFAULT_POS 0x3
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 30
diff --git a/keyboards/keychron/q8/ansi_encoder/info.json b/keyboards/keychron/q8/ansi_encoder/info.json
index ccf9453d53..b3f82637db 100644
--- a/keyboards/keychron/q8/ansi_encoder/info.json
+++ b/keyboards/keychron/q8/ansi_encoder/info.json
@@ -1,28 +1,91 @@
{
- "keyboard_name": "Keychron Q8",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0181",
- "device_version": "1.0.0"
- },
- "rgb_matrix": {
- "driver": "snled27351"
- },
- "matrix_pins": {
- "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
- "rows": ["B4", "B3", "A15", "A14", "A13"]
- },
- "diode_direction": "ROW2COL",
"encoder": {
+ "enabled": true,
"rotary": [
{"pin_a": "B5", "pin_b": "A10"}
]
},
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
+ "rgb_matrix": {
+ "layout": [
+ {"matrix": [0, 0], "x": 7, "y": 1, "flags": 1},
+ {"matrix": [0, 1], "x": 20, "y": 1, "flags": 4},
+ {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 48, "y": 3, "flags": 4},
+ {"matrix": [0, 4], "x": 61, "y": 6, "flags": 4},
+ {"matrix": [0, 5], "x": 74, "y": 8, "flags": 4},
+ {"matrix": [0, 6], "x": 87, "y": 11, "flags": 4},
+ {"matrix": [0, 7], "x": 106, "y": 11, "flags": 4},
+ {"matrix": [0, 8], "x": 119, "y": 8, "flags": 4},
+ {"matrix": [0, 9], "x": 132, "y": 6, "flags": 4},
+ {"matrix": [0, 10], "x": 145, "y": 3, "flags": 4},
+ {"matrix": [0, 11], "x": 160, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 173, "y": 1, "flags": 4},
+ {"matrix": [0, 13], "x": 193, "y": 1, "flags": 1},
+ {"matrix": [0, 14], "x": 220, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 7, "y": 14, "flags": 1},
+ {"matrix": [1, 1], "x": 24, "y": 14, "flags": 4},
+ {"matrix": [1, 2], "x": 39, "y": 14, "flags": 4},
+ {"matrix": [1, 3], "x": 52, "y": 17, "flags": 4},
+ {"matrix": [1, 4], "x": 65, "y": 20, "flags": 4},
+ {"matrix": [1, 5], "x": 78, "y": 22, "flags": 4},
+ {"matrix": [1, 6], "x": 103, "y": 25, "flags": 4},
+ {"matrix": [1, 7], "x": 116, "y": 22, "flags": 4},
+ {"matrix": [1, 8], "x": 129, "y": 20, "flags": 4},
+ {"matrix": [1, 9], "x": 142, "y": 17, "flags": 4},
+ {"matrix": [1, 10], "x": 155, "y": 14, "flags": 4},
+ {"matrix": [1, 11], "x": 170, "y": 14, "flags": 4},
+ {"matrix": [1, 12], "x": 183, "y": 14, "flags": 4},
+ {"matrix": [1, 13], "x": 200, "y": 14, "flags": 4},
+ {"matrix": [1, 14], "x": 222, "y": 16, "flags": 1},
+
+ {"matrix": [2, 0], "x": 6, "y": 27, "flags": 8},
+ {"matrix": [2, 1], "x": 24, "y": 27, "flags": 4},
+ {"matrix": [2, 2], "x": 39, "y": 28, "flags": 4},
+ {"matrix": [2, 3], "x": 52, "y": 30, "flags": 4},
+ {"matrix": [2, 4], "x": 65, "y": 33, "flags": 4},
+ {"matrix": [2, 5], "x": 78, "y": 36, "flags": 4},
+ {"matrix": [2, 7], "x": 109, "y": 37, "flags": 4},
+ {"matrix": [2, 8], "x": 122, "y": 34, "flags": 4},
+ {"matrix": [2, 9], "x": 135, "y": 32, "flags": 4},
+ {"matrix": [2, 10], "x": 148, "y": 29, "flags": 4},
+ {"matrix": [2, 11], "x": 162, "y": 27, "flags": 4},
+ {"matrix": [2, 12], "x": 176, "y": 27, "flags": 4},
+ {"matrix": [2, 13], "x": 197, "y": 27, "flags": 1},
+ {"matrix": [2, 14], "x": 224, "y": 29, "flags": 1},
+
+ {"matrix": [3, 0], "x": 7, "y": 40, "flags": 1},
+ {"matrix": [3, 2], "x": 28, "y": 40, "flags": 4},
+ {"matrix": [3, 3], "x": 43, "y": 42, "flags": 4},
+ {"matrix": [3, 4], "x": 56, "y": 44, "flags": 4},
+ {"matrix": [3, 5], "x": 69, "y": 47, "flags": 4},
+ {"matrix": [3, 6], "x": 82, "y": 50, "flags": 4},
+ {"matrix": [3, 7], "x": 102, "y": 52, "flags": 4},
+ {"matrix": [3, 8], "x": 115, "y": 49, "flags": 4},
+ {"matrix": [3, 9], "x": 128, "y": 46, "flags": 4},
+ {"matrix": [3, 10], "x": 141, "y": 44, "flags": 4},
+ {"matrix": [3, 11], "x": 154, "y": 41, "flags": 4},
+ {"matrix": [3, 12], "x": 169, "y": 40, "flags": 4},
+ {"matrix": [3, 13], "x": 187, "y": 40, "flags": 1},
+ {"matrix": [3, 14], "x": 209, "y": 43, "flags": 1},
+
+ {"matrix": [4, 0], "x": 0, "y": 53, "flags": 1},
+ {"matrix": [4, 1], "x": 17, "y": 53, "flags": 1},
+ {"matrix": [4, 2], "x": 42, "y": 55, "flags": 1},
+ {"matrix": [4, 3], "x": 65, "y": 60, "flags": 4},
+ {"matrix": [4, 6], "x": 86, "y": 64, "flags": 1},
+ {"matrix": [4, 7], "x": 107, "y": 64, "flags": 1},
+ {"matrix": [4, 8], "x": 131, "y": 59, "flags": 4},
+ {"matrix": [4, 9], "x": 156, "y": 54, "flags": 1},
+ {"matrix": [4, 12], "x": 196, "y": 56, "flags": 1},
+ {"matrix": [4, 13], "x": 209, "y": 56, "flags": 1},
+ {"matrix": [4, 14], "x": 222, "y": 56, "flags": 1}
+ ]
+ },
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0181"
+ },
"layouts": {
"LAYOUT_ansi_69": {
"layout": [
@@ -87,7 +150,6 @@
{"matrix": [3, 12], "x": 14.25, "y": 3.25},
{"matrix": [3, 13], "x": 15.25, "y": 3.25, "w": 1.75},
{"matrix": [3, 14], "x": 17.25, "y": 3.5},
-
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4.25, "w": 1.25},
{"matrix": [4, 2], "x": 3.75, "y": 4.25, "w": 1.25},
@@ -102,4 +164,4 @@
]
}
}
-}
+} \ No newline at end of file
diff --git a/keyboards/keychron/q8/ansi_encoder/rules.mk b/keyboards/keychron/q8/ansi_encoder/rules.mk
index 5d77f09971..6e7633bfe0 100644
--- a/keyboards/keychron/q8/ansi_encoder/rules.mk
+++ b/keyboards/keychron/q8/ansi_encoder/rules.mk
@@ -1,15 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
+# This file intentionally left blank
diff --git a/keyboards/keychron/q8/config.h b/keyboards/keychron/q8/config.h
index 7ecbf40b23..934e1b54fc 100644
--- a/keyboards/keychron/q8/config.h
+++ b/keyboards/keychron/q8/config.h
@@ -34,68 +34,5 @@
#define SNLED27351_CURRENT_TUNE \
{ 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60 }
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {4, 4} }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* Turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
+/* Encoder Configuration */
+#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/q8/info.json b/keyboards/keychron/q8/info.json
new file mode 100644
index 0000000000..da4c9c6f79
--- /dev/null
+++ b/keyboards/keychron/q8/info.json
@@ -0,0 +1,64 @@
+{
+ "manufacturer": "Keychron",
+ "keyboard_name": "Keychron Q8",
+ "maintainer": "lalalademaxiya1",
+ "bootloader": "stm32-dfu",
+ "diode_direction": "ROW2COL",
+ "dip_switch": {
+ "matrix_grid": [ [4, 4] ]
+ },
+ "dynamic_keymap": {
+ "layer_count": 5
+ },
+ "eeprom": {
+ "wear_levling": {
+ "backing_size": 4096
+ }
+ },
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "dip_switch": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "matrix_pins": {
+ "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
+ "rows": ["B4", "B3", "A15", "A14", "A13"]
+ },
+ "processor": "STM32L432",
+ "rgb_matrix": {
+ "animations": {
+ "band_spiral_val": true,
+ "breathing": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "cycle_up_down": true,
+ "digital_rain": true,
+ "dual_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "rainbow_beacon": true,
+ "rainbow_moving_chevron": true,
+ "solid_reactive_multinexus": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_simple": true,
+ "solid_splash": true,
+ "splash": true,
+ "typing_heatmap": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ },
+ "url": "https://github.com/Keychron",
+ "usb": {
+ "vid": "0x3434"
+ }
+} \ No newline at end of file
diff --git a/keyboards/keychron/q8/iso/config.h b/keyboards/keychron/q8/iso/config.h
index 99ba64d713..7a10ce6d65 100644
--- a/keyboards/keychron/q8/iso/config.h
+++ b/keyboards/keychron/q8/iso/config.h
@@ -16,10 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 35
-#define DRIVER_2_LED_TOTAL 35
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 29
diff --git a/keyboards/keychron/q8/iso/info.json b/keyboards/keychron/q8/iso/info.json
index 28d586984e..fe87955c39 100644
--- a/keyboards/keychron/q8/iso/info.json
+++ b/keyboards/keychron/q8/iso/info.json
@@ -1,23 +1,86 @@
{
- "keyboard_name": "Keychron Q8",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0182",
- "device_version": "1.0.0"
- },
"rgb_matrix": {
- "driver": "snled27351"
+ "layout": [
+ {"matrix": [0, 0], "x": 7, "y": 1, "flags": 1},
+ {"matrix": [0, 1], "x": 20, "y": 1, "flags": 4},
+ {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 48, "y": 3, "flags": 4},
+ {"matrix": [0, 4], "x": 61, "y": 6, "flags": 4},
+ {"matrix": [0, 5], "x": 74, "y": 8, "flags": 4},
+ {"matrix": [0, 6], "x": 87, "y": 11, "flags": 4},
+ {"matrix": [0, 7], "x": 106, "y": 11, "flags": 4},
+ {"matrix": [0, 8], "x": 119, "y": 8, "flags": 4},
+ {"matrix": [0, 9], "x": 132, "y": 6, "flags": 4},
+ {"matrix": [0, 10], "x": 145, "y": 3, "flags": 4},
+ {"matrix": [0, 11], "x": 160, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 173, "y": 1, "flags": 4},
+ {"matrix": [0, 13], "x": 193, "y": 1, "flags": 1},
+ {"matrix": [0, 14], "x": 220, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 7, "y": 14, "flags": 1},
+ {"matrix": [1, 1], "x": 24, "y": 14, "flags": 4},
+ {"matrix": [1, 2], "x": 39, "y": 14, "flags": 4},
+ {"matrix": [1, 3], "x": 52, "y": 17, "flags": 4},
+ {"matrix": [1, 4], "x": 65, "y": 19, "flags": 4},
+ {"matrix": [1, 5], "x": 78, "y": 22, "flags": 4},
+ {"matrix": [1, 6], "x": 103, "y": 25, "flags": 4},
+ {"matrix": [1, 7], "x": 116, "y": 22, "flags": 4},
+ {"matrix": [1, 8], "x": 129, "y": 20, "flags": 4},
+ {"matrix": [1, 9], "x": 142, "y": 17, "flags": 4},
+ {"matrix": [1, 10], "x": 155, "y": 14, "flags": 4},
+ {"matrix": [1, 11], "x": 172, "y": 14, "flags": 4},
+ {"matrix": [1, 12], "x": 186, "y": 14, "flags": 4},
+ {"matrix": [1, 14], "x": 222, "y": 16, "flags": 1},
+
+ {"matrix": [2, 0], "x": 6, "y": 27, "flags": 8},
+ {"matrix": [2, 1], "x": 24, "y": 27, "flags": 4},
+ {"matrix": [2, 2], "x": 39, "y": 27, "flags": 4},
+ {"matrix": [2, 3], "x": 52, "y": 30, "flags": 4},
+ {"matrix": [2, 4], "x": 65, "y": 33, "flags": 4},
+ {"matrix": [2, 5], "x": 78, "y": 35, "flags": 4},
+ {"matrix": [2, 7], "x": 109, "y": 37, "flags": 4},
+ {"matrix": [2, 8], "x": 122, "y": 34, "flags": 4},
+ {"matrix": [2, 9], "x": 135, "y": 31, "flags": 4},
+ {"matrix": [2, 10], "x": 148, "y": 29, "flags": 4},
+ {"matrix": [2, 11], "x": 162, "y": 27, "flags": 4},
+ {"matrix": [2, 12], "x": 176, "y": 27, "flags": 4},
+ {"matrix": [2, 13], "x": 189, "y": 27, "flags": 4},
+ {"matrix": [1, 13], "x": 207, "y": 22, "flags": 1},
+ {"matrix": [2, 14], "x": 224, "y": 29, "flags": 1},
+
+ {"matrix": [3, 0], "x": 0, "y": 40, "flags": 1},
+ {"matrix": [3, 1], "x": 15, "y": 40, "flags": 4},
+ {"matrix": [3, 2], "x": 28, "y": 40, "flags": 4},
+ {"matrix": [3, 3], "x": 43, "y": 41, "flags": 4},
+ {"matrix": [3, 4], "x": 56, "y": 44, "flags": 4},
+ {"matrix": [3, 5], "x": 69, "y": 47, "flags": 4},
+ {"matrix": [3, 6], "x": 82, "y": 49, "flags": 4},
+ {"matrix": [3, 7], "x": 102, "y": 51, "flags": 4},
+ {"matrix": [3, 8], "x": 115, "y": 49, "flags": 4},
+ {"matrix": [3, 9], "x": 128, "y": 46, "flags": 4},
+ {"matrix": [3, 10], "x": 141, "y": 43, "flags": 4},
+ {"matrix": [3, 11], "x": 154, "y": 41, "flags": 4},
+ {"matrix": [3, 12], "x": 169, "y": 40, "flags": 4},
+ {"matrix": [3, 13], "x": 187, "y": 40, "flags": 1},
+ {"matrix": [3, 14], "x": 209, "y": 43, "flags": 1},
+
+ {"matrix": [4, 0], "x": 0, "y": 52, "flags": 1},
+ {"matrix": [4, 1], "x": 17, "y": 52, "flags": 1},
+ {"matrix": [4, 2], "x": 42, "y": 54, "flags": 1},
+ {"matrix": [4, 3], "x": 65, "y": 59, "flags": 1},
+ {"matrix": [4, 6], "x": 86, "y": 63, "flags": 1},
+ {"matrix": [4, 7], "x": 104, "y": 64, "flags": 1},
+ {"matrix": [4, 8], "x": 129, "y": 59, "flags": 1},
+ {"matrix": [4, 9], "x": 153, "y": 54, "flags": 1},
+ {"matrix": [4, 12], "x": 196, "y": 56, "flags": 1},
+ {"matrix": [4, 13], "x": 209, "y": 56, "flags": 1},
+ {"matrix": [4, 14], "x": 222, "y": 59, "flags": 1}
+ ]
},
- "matrix_pins": {
- "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
- "rows": ["B4", "B3", "A15", "A14", "A13"]
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0182"
},
- "diode_direction": "ROW2COL",
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
"layouts": {
"LAYOUT_iso_70": {
"layout": [
@@ -83,7 +146,6 @@
{"matrix": [3, 12], "x": 14.25, "y": 3.25},
{"matrix": [3, 13], "x": 15.25, "y": 3.25, "w": 1.75},
{"matrix": [3, 14], "x": 17.25, "y": 3.5},
-
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4.25, "w": 1.25},
{"matrix": [4, 2], "x": 3.75, "y": 4.25, "w": 1.25},
@@ -98,4 +160,4 @@
]
}
}
-}
+} \ No newline at end of file
diff --git a/keyboards/keychron/q8/iso/iso.c b/keyboards/keychron/q8/iso/iso.c
index dbcefd76c0..aab7ab357b 100644
--- a/keyboards/keychron/q8/iso/iso.c
+++ b/keyboards/keychron/q8/iso/iso.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
@@ -103,33 +103,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{1, F_1, D_1, E_1}
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
- { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 },
- { 29, 30, 31, 32, 33, 34, __, 35, 36, 37, 38, 39, 40, 41, 43 },
- { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 },
- { 59, 60, 61, 62, __, __, 63, 64, 65, 66, __, __, 67, 68, 69 },
- },
- {
- // LED Index to Physical Position
- {7,1}, {20,1}, {33,0}, {48,3}, {61,6}, {74,8}, {87,11}, {106,11}, {119,8}, {132,6}, {145,3}, {160,0}, {173,1}, {193,1}, {220,0},
- {7,14}, {24,14}, {39,14}, {52,17}, {65,19}, {78,22}, {103,25}, {116,22}, {129,20}, {142,17}, {155,14}, {172,14}, {186,14}, {222,16},
- {6,27}, {24,27}, {39,27}, {52,30}, {65,33}, {78,35}, {109,37}, {122,34}, {135,31}, {148,29}, {162,27}, {176,27}, {189,27}, {207,22}, {224,29},
- {0,40}, {15,40}, {28,40}, {43,41}, {56,44}, {69,47}, {82,49}, {102,51}, {115,49}, {128,46}, {141,43}, {154,41}, {169,40}, {187,40}, {209,43},
- {0,52}, {17,52}, {42,54}, {65,59}, {86,63}, {104,64}, {129,59}, {153,54}, {196,56}, {209,56}, {222,59},
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q8/iso/rules.mk b/keyboards/keychron/q8/iso/rules.mk
index cf31e094cb..7ff128fa69 100644
--- a/keyboards/keychron/q8/iso/rules.mk
+++ b/keyboards/keychron/q8/iso/rules.mk
@@ -1,14 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/keychron/q8/iso_encoder/config.h b/keyboards/keychron/q8/iso_encoder/config.h
index cdda41df5d..7a10ce6d65 100644
--- a/keyboards/keychron/q8/iso_encoder/config.h
+++ b/keyboards/keychron/q8/iso_encoder/config.h
@@ -16,13 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 35
-#define DRIVER_2_LED_TOTAL 35
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
-/* Encoder Configuration */
-#define ENCODER_DEFAULT_POS 0x3
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 29
diff --git a/keyboards/keychron/q8/iso_encoder/info.json b/keyboards/keychron/q8/iso_encoder/info.json
index 0d96f3f193..46a93ec63b 100644
--- a/keyboards/keychron/q8/iso_encoder/info.json
+++ b/keyboards/keychron/q8/iso_encoder/info.json
@@ -1,28 +1,92 @@
{
- "keyboard_name": "Keychron Q8",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0183",
- "device_version": "1.0.0"
- },
- "rgb_matrix": {
- "driver": "snled27351"
- },
- "matrix_pins": {
- "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
- "rows": ["B4", "B3", "A15", "A14", "A13"]
- },
- "diode_direction": "ROW2COL",
"encoder": {
+ "enabled": true,
"rotary": [
{"pin_a": "B5", "pin_b": "A10"}
]
},
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
+ "rgb_matrix": {
+ "layout": [
+ {"matrix": [0, 0], "x": 7, "y": 1, "flags": 1},
+ {"matrix": [0, 1], "x": 20, "y": 1, "flags": 4},
+ {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 48, "y": 3, "flags": 4},
+ {"matrix": [0, 4], "x": 61, "y": 6, "flags": 4},
+ {"matrix": [0, 5], "x": 74, "y": 8, "flags": 4},
+ {"matrix": [0, 6], "x": 87, "y": 11, "flags": 4},
+ {"matrix": [0, 7], "x": 106, "y": 11, "flags": 4},
+ {"matrix": [0, 8], "x": 119, "y": 8, "flags": 4},
+ {"matrix": [0, 9], "x": 132, "y": 6, "flags": 4},
+ {"matrix": [0, 10], "x": 145, "y": 3, "flags": 4},
+ {"matrix": [0, 11], "x": 160, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 173, "y": 1, "flags": 4},
+ {"matrix": [0, 13], "x": 193, "y": 1, "flags": 1},
+ {"matrix": [0, 14], "x": 220, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 7, "y": 14, "flags": 1},
+ {"matrix": [1, 1], "x": 24, "y": 14, "flags": 4},
+ {"matrix": [1, 2], "x": 39, "y": 14, "flags": 4},
+ {"matrix": [1, 3], "x": 52, "y": 17, "flags": 4},
+ {"matrix": [1, 4], "x": 65, "y": 19, "flags": 4},
+ {"matrix": [1, 5], "x": 78, "y": 22, "flags": 4},
+ {"matrix": [1, 6], "x": 103, "y": 25, "flags": 4},
+ {"matrix": [1, 7], "x": 116, "y": 22, "flags": 4},
+ {"matrix": [1, 8], "x": 129, "y": 20, "flags": 4},
+ {"matrix": [1, 9], "x": 142, "y": 17, "flags": 4},
+ {"matrix": [1, 10], "x": 155, "y": 14, "flags": 4},
+ {"matrix": [1, 11], "x": 172, "y": 14, "flags": 4},
+ {"matrix": [1, 12], "x": 186, "y": 14, "flags": 4},
+ {"matrix": [1, 14], "x": 222, "y": 16, "flags": 1},
+
+ {"matrix": [2, 0], "x": 6, "y": 27, "flags": 8},
+ {"matrix": [2, 1], "x": 24, "y": 27, "flags": 4},
+ {"matrix": [2, 2], "x": 39, "y": 27, "flags": 4},
+ {"matrix": [2, 3], "x": 52, "y": 30, "flags": 4},
+ {"matrix": [2, 4], "x": 65, "y": 33, "flags": 4},
+ {"matrix": [2, 5], "x": 78, "y": 35, "flags": 4},
+ {"matrix": [2, 7], "x": 109, "y": 37, "flags": 4},
+ {"matrix": [2, 8], "x": 122, "y": 34, "flags": 4},
+ {"matrix": [2, 9], "x": 135, "y": 31, "flags": 4},
+ {"matrix": [2, 10], "x": 148, "y": 29, "flags": 4},
+ {"matrix": [2, 11], "x": 162, "y": 27, "flags": 4},
+ {"matrix": [2, 12], "x": 176, "y": 27, "flags": 4},
+ {"matrix": [2, 13], "x": 189, "y": 27, "flags": 4},
+ {"matrix": [1, 13], "x": 207, "y": 22, "flags": 1},
+ {"matrix": [2, 14], "x": 224, "y": 29, "flags": 1},
+
+ {"matrix": [3, 0], "x": 0, "y": 40, "flags": 1},
+ {"matrix": [3, 1], "x": 15, "y": 40, "flags": 4},
+ {"matrix": [3, 2], "x": 28, "y": 40, "flags": 4},
+ {"matrix": [3, 3], "x": 43, "y": 41, "flags": 4},
+ {"matrix": [3, 4], "x": 56, "y": 44, "flags": 4},
+ {"matrix": [3, 5], "x": 69, "y": 47, "flags": 4},
+ {"matrix": [3, 6], "x": 82, "y": 49, "flags": 4},
+ {"matrix": [3, 7], "x": 102, "y": 51, "flags": 4},
+ {"matrix": [3, 8], "x": 115, "y": 49, "flags": 4},
+ {"matrix": [3, 9], "x": 128, "y": 46, "flags": 4},
+ {"matrix": [3, 10], "x": 141, "y": 43, "flags": 4},
+ {"matrix": [3, 11], "x": 154, "y": 41, "flags": 4},
+ {"matrix": [3, 12], "x": 169, "y": 40, "flags": 4},
+ {"matrix": [3, 13], "x": 187, "y": 40, "flags": 1},
+ {"matrix": [3, 14], "x": 209, "y": 43, "flags": 1},
+
+ {"matrix": [4, 0], "x": 0, "y": 52, "flags": 1},
+ {"matrix": [4, 1], "x": 17, "y": 52, "flags": 1},
+ {"matrix": [4, 2], "x": 42, "y": 54, "flags": 1},
+ {"matrix": [4, 3], "x": 65, "y": 59, "flags": 1},
+ {"matrix": [4, 6], "x": 86, "y": 63, "flags": 1},
+ {"matrix": [4, 7], "x": 104, "y": 64, "flags": 1},
+ {"matrix": [4, 8], "x": 129, "y": 59, "flags": 1},
+ {"matrix": [4, 9], "x": 153, "y": 54, "flags": 1},
+ {"matrix": [4, 12], "x": 196, "y": 56, "flags": 1},
+ {"matrix": [4, 13], "x": 209, "y": 56, "flags": 1},
+ {"matrix": [4, 14], "x": 222, "y": 59, "flags": 1}
+ ]
+ },
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0183"
+ },
"layouts": {
"LAYOUT_iso_70": {
"layout": [
@@ -103,4 +167,4 @@
]
}
}
-}
+} \ No newline at end of file
diff --git a/keyboards/keychron/q8/iso_encoder/iso_encoder.c b/keyboards/keychron/q8/iso_encoder/iso_encoder.c
index dbcefd76c0..aab7ab357b 100644
--- a/keyboards/keychron/q8/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q8/iso_encoder/iso_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
@@ -103,33 +103,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{1, F_1, D_1, E_1}
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
- { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 },
- { 29, 30, 31, 32, 33, 34, __, 35, 36, 37, 38, 39, 40, 41, 43 },
- { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 },
- { 59, 60, 61, 62, __, __, 63, 64, 65, 66, __, __, 67, 68, 69 },
- },
- {
- // LED Index to Physical Position
- {7,1}, {20,1}, {33,0}, {48,3}, {61,6}, {74,8}, {87,11}, {106,11}, {119,8}, {132,6}, {145,3}, {160,0}, {173,1}, {193,1}, {220,0},
- {7,14}, {24,14}, {39,14}, {52,17}, {65,19}, {78,22}, {103,25}, {116,22}, {129,20}, {142,17}, {155,14}, {172,14}, {186,14}, {222,16},
- {6,27}, {24,27}, {39,27}, {52,30}, {65,33}, {78,35}, {109,37}, {122,34}, {135,31}, {148,29}, {162,27}, {176,27}, {189,27}, {207,22}, {224,29},
- {0,40}, {15,40}, {28,40}, {43,41}, {56,44}, {69,47}, {82,49}, {102,51}, {115,49}, {128,46}, {141,43}, {154,41}, {169,40}, {187,40}, {209,43},
- {0,52}, {17,52}, {42,54}, {65,59}, {86,63}, {104,64}, {129,59}, {153,54}, {196,56}, {209,56}, {222,59},
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q8/iso_encoder/rules.mk b/keyboards/keychron/q8/iso_encoder/rules.mk
index 5d77f09971..6e7633bfe0 100644
--- a/keyboards/keychron/q8/iso_encoder/rules.mk
+++ b/keyboards/keychron/q8/iso_encoder/rules.mk
@@ -1,15 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
+# This file intentionally left blank
diff --git a/keyboards/keychron/q8/q8.c b/keyboards/keychron/q8/q8.c
index a653bdc8b9..c28f992f8e 100644
--- a/keyboards/keychron/q8/q8.c
+++ b/keyboards/keychron/q8/q8.c
@@ -16,14 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b111111111111111,
- 0b111111111111111,
- 0b111111111111111,
- 0b111111111111111,
- 0b111111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/q8/readme.md b/keyboards/keychron/q8/readme.md
index da200e2c18..eaa286899a 100644
--- a/keyboards/keychron/q8/readme.md
+++ b/keyboards/keychron/q8/readme.md
@@ -1,19 +1,27 @@
# Keychron Q8
+![Keychron Q8](https://i.imgur.com/FQnOwRrh.jpg)
+
A customizable 65% Alice layout keyboard.
* Keyboard Maintainer: [Keychron](https://github.com/keychron)
* Hardware Supported: Keychron Q8
-* Hardware Availability: [Keychron](https://www.keychron.com)
+* Hardware Availability: [Keychron Q8 (Alice Layout) QMK Custom Mechanical Keyboard](https://www.keychron.com/products/keychron-q8-alice-layout-qmk-custom-mechanical-keyboard)
Make example for this keyboard (after setting up your build environment):
make keychron/q8/ansi:default
+ make keychron/q8/ansi_encoder:default
+ make keychron/q8/iso:default
+ make keychron/q8/iso_encoder:default
-Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
+Flashing example for this keyboard:
make keychron/q8/ansi:default:flash
+ make keychron/q8/ansi_encoder:default:flash
+ make keychron/q8/iso:default:flash
+ make keychron/q8/iso_encoder:default:flash
**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard.
-See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/keychron/q9/ansi/ansi.c b/keyboards/keychron/q9/ansi/ansi.c
index 9178c8dcc7..0034c79c78 100644
--- a/keyboards/keychron/q9/ansi/ansi.c
+++ b/keyboards/keychron/q9/ansi/ansi.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
@@ -84,30 +84,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{0, C_4, A_4, B_4}
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
- { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 51, 27, 28 },
- { 29, __, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, __, 40, 41 },
- { 42, 43, 44, __, __, __, 45, __, __, __, 46, 47, 48, 49, 50 },
- },
- {
- // LED Index to Physical Position
- {2,0}, {20,0}, {35,0}, {50,0}, {65,0}, {80,0}, {94,0}, {109,0}, {124,0}, {139,0}, {154,0}, {168,0}, {183,0}, {202,0}, {224,0},
- {4,21}, {24,21}, {39,21}, {54,21}, {68,21}, {83,21}, {98,21}, {113,21}, {128,21}, {142,21}, {157,21}, {172,21}, {196,21}, {224,27},
- {7,43}, {31,43}, {46,43}, {61,43}, {76,43}, {91,43}, {105,43}, {120,43}, {135,43}, {150,43}, {165,43}, {185,43}, {205,43},
- {0,64}, {18,64}, {37,64}, {92,64}, {146,64}, {161,64}, {176,64}, {190,64}, {205,64}, {220,64},
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q9/ansi/config.h b/keyboards/keychron/q9/ansi/config.h
index f9565bd6f0..40cc325d43 100644
--- a/keyboards/keychron/q9/ansi/config.h
+++ b/keyboards/keychron/q9/ansi/config.h
@@ -16,9 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 52
-#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 15
diff --git a/keyboards/keychron/q9/ansi/info.json b/keyboards/keychron/q9/ansi/info.json
index ccb29a749b..ec5f367ed1 100644
--- a/keyboards/keychron/q9/ansi/info.json
+++ b/keyboards/keychron/q9/ansi/info.json
@@ -1,23 +1,67 @@
{
- "keyboard_name": "Keychron Q9",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0190",
- "device_version": "1.0.0"
- },
"rgb_matrix": {
- "driver": "snled27351"
+ "layout": [
+ {"matrix": [0, 0], "x": 2, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 35, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 94, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 109, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 124, "y": 0, "flags": 4},
+ {"matrix": [0, 9], "x": 139, "y": 0, "flags": 4},
+ {"matrix": [0, 10], "x": 154, "y": 0, "flags": 4},
+ {"matrix": [0, 11], "x": 168, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 183, "y": 0, "flags": 4},
+ {"matrix": [0, 13], "x": 202, "y": 0, "flags": 4},
+ {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 4, "y": 21, "flags": 8},
+ {"matrix": [1, 1], "x": 24, "y": 21, "flags": 4},
+ {"matrix": [1, 2], "x": 39, "y": 21, "flags": 4},
+ {"matrix": [1, 3], "x": 54, "y": 21, "flags": 4},
+ {"matrix": [1, 4], "x": 68, "y": 21, "flags": 4},
+ {"matrix": [1, 5], "x": 83, "y": 21, "flags": 4},
+ {"matrix": [1, 6], "x": 98, "y": 21, "flags": 4},
+ {"matrix": [1, 7], "x": 113, "y": 21, "flags": 4},
+ {"matrix": [1, 8], "x": 128, "y": 21, "flags": 4},
+ {"matrix": [1, 9], "x": 142, "y": 21, "flags": 4},
+ {"matrix": [1, 10], "x": 157, "y": 21, "flags": 4},
+ {"matrix": [1, 11], "x": 172, "y": 21, "flags": 4},
+ {"matrix": [1, 13], "x": 196, "y": 21, "flags": 1},
+ {"matrix": [1, 14], "x": 224, "y": 27, "flags": 1},
+
+ {"matrix": [2, 0], "x": 7, "y": 43, "flags": 1},
+ {"matrix": [2, 2], "x": 31, "y": 43, "flags": 4},
+ {"matrix": [2, 3], "x": 46, "y": 43, "flags": 4},
+ {"matrix": [2, 4], "x": 61, "y": 43, "flags": 4},
+ {"matrix": [2, 5], "x": 76, "y": 43, "flags": 4},
+ {"matrix": [2, 6], "x": 91, "y": 43, "flags": 4},
+ {"matrix": [2, 7], "x": 105, "y": 43, "flags": 4},
+ {"matrix": [2, 8], "x": 120, "y": 43, "flags": 4},
+ {"matrix": [2, 9], "x": 135, "y": 43, "flags": 4},
+ {"matrix": [2, 10], "x": 150, "y": 43, "flags": 4},
+ {"matrix": [2, 11], "x": 165, "y": 43, "flags": 4},
+ {"matrix": [2, 13], "x": 185, "y": 43, "flags": 1},
+ {"matrix": [2, 14], "x": 205, "y": 43, "flags": 1},
+
+ {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1},
+ {"matrix": [3, 1], "x": 18, "y": 64, "flags": 1},
+ {"matrix": [3, 2], "x": 37, "y": 64, "flags": 1},
+ {"matrix": [3, 6], "x": 92, "y": 64, "flags": 4},
+ {"matrix": [3, 10], "x": 146, "y": 64, "flags": 1},
+ {"matrix": [3, 11], "x": 161, "y": 64, "flags": 1},
+ {"matrix": [3, 12], "x": 176, "y": 64, "flags": 1},
+ {"matrix": [3, 13], "x": 190, "y": 64, "flags": 1},
+ {"matrix": [3, 14], "x": 205, "y": 64, "flags": 1},
+ {"matrix": [1, 12], "x": 220, "y": 64, "flags": 1}
+ ]
},
- "matrix_pins": {
- "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"],
- "rows": ["B3", "A15", "A14", "A13"]
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0190"
},
- "diode_direction": "ROW2COL",
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
"layouts": {
"LAYOUT_ansi_52": {
"layout": [
@@ -65,7 +109,6 @@
{"matrix": [2, 11], "x": 11.25, "y": 2.25},
{"matrix": [2, 13], "x": 12.25, "y": 2.25, "w": 1.75},
{"matrix": [2, 14], "x": 14.25, "y": 2.5},
-
{"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3.25, "w": 1.25},
{"matrix": [3, 2], "x": 2.5, "y": 3.25, "w": 1.25},
@@ -79,4 +122,4 @@
]
}
}
-}
+} \ No newline at end of file
diff --git a/keyboards/keychron/q9/ansi/rules.mk b/keyboards/keychron/q9/ansi/rules.mk
index cf31e094cb..6e7633bfe0 100644
--- a/keyboards/keychron/q9/ansi/rules.mk
+++ b/keyboards/keychron/q9/ansi/rules.mk
@@ -1,14 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
+# This file intentionally left blank
diff --git a/keyboards/keychron/q9/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q9/ansi_encoder/ansi_encoder.c
index 58d66e0473..0034c79c78 100644
--- a/keyboards/keychron/q9/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q9/ansi_encoder/ansi_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
@@ -84,30 +84,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{0, C_4, A_4, B_4}
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
- { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 51, 27, 28 },
- { 29, __, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, __, 40, 41 },
- { 42, 43, 44, __, __, __, 45, __, __, __, 46, 47, 48, 49, 50 },
- },
- {
- // LED Index to Physical Position
- {2,0}, {20,0}, {35,0}, {50,0}, {65,0}, {80,0}, {94,0}, {109,0}, {124,0}, {139,0}, {154,0}, {168,0}, {183,0}, {202,0}, {224,0},
- {4,21}, {24,21}, {39,21}, {54,21}, {68,21}, {83,21}, {98,21}, {113,21}, {128,21}, {142,21}, {157,21}, {172,21}, {196,21}, {224,27},
- {7,43}, {31,43}, {46,43}, {61,43}, {76,43}, {91,43}, {105,43}, {120,43}, {135,43}, {150,43}, {165,43}, {185,43}, {205,43},
- {0,64}, {18,64}, {37,64}, {92,64}, {146,64}, {161,64}, {176,64}, {190,64}, {205,64}, {220,64},
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q9/ansi_encoder/config.h b/keyboards/keychron/q9/ansi_encoder/config.h
index 6850e5c2d6..40cc325d43 100644
--- a/keyboards/keychron/q9/ansi_encoder/config.h
+++ b/keyboards/keychron/q9/ansi_encoder/config.h
@@ -16,12 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 52
-#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
-
-/* Encoder Configuration */
-#define ENCODER_DEFAULT_POS 0x3
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 15
diff --git a/keyboards/keychron/q9/ansi_encoder/info.json b/keyboards/keychron/q9/ansi_encoder/info.json
index 3826a1b768..0fc135771a 100644
--- a/keyboards/keychron/q9/ansi_encoder/info.json
+++ b/keyboards/keychron/q9/ansi_encoder/info.json
@@ -1,28 +1,70 @@
{
- "keyboard_name": "Keychron Q9",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0191",
- "device_version": "1.0.0"
- },
- "rgb_matrix": {
- "driver": "snled27351"
- },
- "matrix_pins": {
- "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"],
- "rows": ["B3", "A15", "A14", "A13"]
- },
- "diode_direction": "ROW2COL",
"encoder": {
+ "enabled": true,
"rotary": [
{"pin_a": "B4", "pin_b": "B5"}
]
},
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
+ "rgb_matrix": {
+ "layout": [
+ {"matrix": [0, 0], "x": 2, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 35, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 94, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 109, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 124, "y": 0, "flags": 4},
+ {"matrix": [0, 9], "x": 139, "y": 0, "flags": 4},
+ {"matrix": [0, 10], "x": 154, "y": 0, "flags": 4},
+ {"matrix": [0, 11], "x": 168, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 183, "y": 0, "flags": 4},
+ {"matrix": [0, 13], "x": 202, "y": 0, "flags": 4},
+ {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+ {"matrix": [1, 0], "x": 4, "y": 21, "flags": 8},
+ {"matrix": [1, 1], "x": 24, "y": 21, "flags": 4},
+ {"matrix": [1, 2], "x": 39, "y": 21, "flags": 4},
+ {"matrix": [1, 3], "x": 54, "y": 21, "flags": 4},
+ {"matrix": [1, 4], "x": 68, "y": 21, "flags": 4},
+ {"matrix": [1, 5], "x": 83, "y": 21, "flags": 4},
+ {"matrix": [1, 6], "x": 98, "y": 21, "flags": 4},
+ {"matrix": [1, 7], "x": 113, "y": 21, "flags": 4},
+ {"matrix": [1, 8], "x": 128, "y": 21, "flags": 4},
+ {"matrix": [1, 9], "x": 142, "y": 21, "flags": 4},
+ {"matrix": [1, 10], "x": 157, "y": 21, "flags": 4},
+ {"matrix": [1, 11], "x": 172, "y": 21, "flags": 4},
+ {"matrix": [1, 13], "x": 196, "y": 21, "flags": 1},
+ {"matrix": [1, 14], "x": 224, "y": 27, "flags": 1},
+ {"matrix": [2, 0], "x": 7, "y": 43, "flags": 1},
+ {"matrix": [2, 2], "x": 31, "y": 43, "flags": 4},
+ {"matrix": [2, 3], "x": 46, "y": 43, "flags": 4},
+ {"matrix": [2, 4], "x": 61, "y": 43, "flags": 4},
+ {"matrix": [2, 5], "x": 76, "y": 43, "flags": 4},
+ {"matrix": [2, 6], "x": 91, "y": 43, "flags": 4},
+ {"matrix": [2, 7], "x": 105, "y": 43, "flags": 4},
+ {"matrix": [2, 8], "x": 120, "y": 43, "flags": 4},
+ {"matrix": [2, 9], "x": 135, "y": 43, "flags": 4},
+ {"matrix": [2, 10], "x": 150, "y": 43, "flags": 4},
+ {"matrix": [2, 11], "x": 165, "y": 43, "flags": 4},
+ {"matrix": [2, 13], "x": 185, "y": 43, "flags": 1},
+ {"matrix": [2, 14], "x": 205, "y": 43, "flags": 1},
+ {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1},
+ {"matrix": [3, 1], "x": 18, "y": 64, "flags": 1},
+ {"matrix": [3, 2], "x": 37, "y": 64, "flags": 1},
+ {"matrix": [3, 6], "x": 92, "y": 64, "flags": 1},
+ {"matrix": [3, 10], "x": 146, "y": 64, "flags": 1},
+ {"matrix": [3, 11], "x": 161, "y": 64, "flags": 1},
+ {"matrix": [3, 12], "x": 176, "y": 64, "flags": 1},
+ {"matrix": [3, 13], "x": 190, "y": 64, "flags": 1},
+ {"matrix": [3, 14], "x": 205, "y": 64, "flags": 1},
+ {"matrix": [1, 12], "x": 220, "y": 64, "flags": 1}
+ ]
+ },
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0191"
+ },
"layouts": {
"LAYOUT_ansi_52": {
"layout": [
@@ -41,7 +83,6 @@
{"matrix": [0, 12], "x": 12.5, "y": 0.25},
{"matrix": [0, 13], "x": 13.5, "y": 0.25, "w": 1.5},
{"matrix": [0, 14], "x": 15.25, "y": 0},
-
{"matrix": [1, 0], "x": 0, "y": 1.25, "w": 1.75},
{"matrix": [1, 1], "x": 1.75, "y": 1.25},
{"matrix": [1, 2], "x": 2.75, "y": 1.25},
@@ -56,7 +97,6 @@
{"matrix": [1, 11], "x": 11.75, "y": 1.25},
{"matrix": [1, 13], "x": 12.75, "y": 1.25, "w": 2.25},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
-
{"matrix": [2, 0], "x": 0, "y": 2.25, "w": 2.25},
{"matrix": [2, 2], "x": 2.25, "y": 2.25},
{"matrix": [2, 3], "x": 3.25, "y": 2.25},
@@ -70,7 +110,6 @@
{"matrix": [2, 11], "x": 11.25, "y": 2.25},
{"matrix": [2, 13], "x": 12.25, "y": 2.25, "w": 1.75},
{"matrix": [2, 14], "x": 14.25, "y": 2.5},
-
{"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3.25, "w": 1.25},
{"matrix": [3, 2], "x": 2.5, "y": 3.25, "w": 1.25},
@@ -84,4 +123,4 @@
]
}
}
-}
+} \ No newline at end of file
diff --git a/keyboards/keychron/q9/ansi_encoder/rules.mk b/keyboards/keychron/q9/ansi_encoder/rules.mk
index ed8fd33800..6e7633bfe0 100644
--- a/keyboards/keychron/q9/ansi_encoder/rules.mk
+++ b/keyboards/keychron/q9/ansi_encoder/rules.mk
@@ -1,16 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable Encoder
-ENCODER_MAP_ENBALE = no
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
+# This file intentionally left blank
diff --git a/keyboards/keychron/q9/config.h b/keyboards/keychron/q9/config.h
index 4226980d3e..e0e7e19227 100644
--- a/keyboards/keychron/q9/config.h
+++ b/keyboards/keychron/q9/config.h
@@ -16,12 +16,6 @@
#pragma once
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { { 3, 4 } }
-
/* RGB Matrix Driver Configuration */
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
@@ -35,63 +29,5 @@
#define SNLED27351_CURRENT_TUNE \
{ 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70 }
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
+/* Encoder Configuration */
+#define ENCODER_DEFAULT_POS 0x3 \ No newline at end of file
diff --git a/keyboards/keychron/q9/info.json b/keyboards/keychron/q9/info.json
new file mode 100644
index 0000000000..322fcfa1ad
--- /dev/null
+++ b/keyboards/keychron/q9/info.json
@@ -0,0 +1,64 @@
+{
+ "manufacturer": "Keychron",
+ "keyboard_name": "Keychron Q9",
+ "maintainer": "lalalademaxiya1",
+ "bootloader": "stm32-dfu",
+ "diode_direction": "ROW2COL",
+ "dynamic_keymap": {
+ "layer_count": 5
+ },
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "dip_switch": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "dip_switch": {
+ "matrix_grid": [ [3, 4] ]
+ },
+ "matrix_pins": {
+ "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"],
+ "rows": ["B3", "A15", "A14", "A13"]
+ },
+ "processor": "STM32L432",
+ "rgb_matrix": {
+ "animations": {
+ "band_spiral_val": true,
+ "breathing": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "cycle_up_down": true,
+ "digital_rain": true,
+ "dual_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "rainbow_beacon": true,
+ "rainbow_moving_chevron": true,
+ "solid_reactive_multinexus": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_simple": true,
+ "solid_splash": true,
+ "splash": true,
+ "typing_heatmap": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ },
+ "url": "https://github.com/Keychron",
+ "usb": {
+ "vid": "0x3434"
+ }
+} \ No newline at end of file
diff --git a/keyboards/keychron/q9/iso/config.h b/keyboards/keychron/q9/iso/config.h
index eba60f4562..611ed6e267 100644
--- a/keyboards/keychron/q9/iso/config.h
+++ b/keyboards/keychron/q9/iso/config.h
@@ -16,9 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 53
-#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 14
diff --git a/keyboards/keychron/q9/iso/info.json b/keyboards/keychron/q9/iso/info.json
index a9586d6d91..19a818ebb8 100644
--- a/keyboards/keychron/q9/iso/info.json
+++ b/keyboards/keychron/q9/iso/info.json
@@ -1,23 +1,68 @@
{
- "keyboard_name": "Keychron Q9",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0192",
- "device_version": "1.0.0"
- },
"rgb_matrix": {
- "driver": "snled27351"
+ "layout": [
+ {"matrix": [0, 0], "x": 2, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 35, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 94, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 109, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 124, "y": 0, "flags": 4},
+ {"matrix": [0, 9], "x": 139, "y": 0, "flags": 4},
+ {"matrix": [0, 10], "x": 154, "y": 0, "flags": 4},
+ {"matrix": [0, 11], "x": 168, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 183, "y": 0, "flags": 4},
+ {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 4, "y": 21, "flags": 8},
+ {"matrix": [1, 1], "x": 24, "y": 21, "flags": 4},
+ {"matrix": [1, 2], "x": 39, "y": 21, "flags": 4},
+ {"matrix": [1, 3], "x": 54, "y": 21, "flags": 4},
+ {"matrix": [1, 4], "x": 68, "y": 21, "flags": 4},
+ {"matrix": [1, 5], "x": 83, "y": 21, "flags": 4},
+ {"matrix": [1, 6], "x": 98, "y": 21, "flags": 4},
+ {"matrix": [1, 7], "x": 113, "y": 21, "flags": 4},
+ {"matrix": [1, 8], "x": 128, "y": 21, "flags": 4},
+ {"matrix": [1, 9], "x": 142, "y": 21, "flags": 4},
+ {"matrix": [1, 10], "x": 157, "y": 21, "flags": 4},
+ {"matrix": [1, 11], "x": 172, "y": 21, "flags": 4},
+ {"matrix": [1, 13], "x": 187, "y": 21, "flags": 4},
+ {"matrix": [0, 13], "x": 207, "y": 14, "flags": 1},
+ {"matrix": [1, 14], "x": 224, "y": 27, "flags": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 43, "flags": 1},
+ {"matrix": [2, 1], "x": 17, "y": 43, "flags": 4},
+ {"matrix": [2, 2], "x": 31, "y": 43, "flags": 4},
+ {"matrix": [2, 3], "x": 46, "y": 43, "flags": 4},
+ {"matrix": [2, 4], "x": 61, "y": 43, "flags": 4},
+ {"matrix": [2, 5], "x": 76, "y": 43, "flags": 4},
+ {"matrix": [2, 6], "x": 91, "y": 43, "flags": 4},
+ {"matrix": [2, 7], "x": 105, "y": 43, "flags": 4},
+ {"matrix": [2, 8], "x": 120, "y": 43, "flags": 4},
+ {"matrix": [2, 9], "x": 135, "y": 43, "flags": 4},
+ {"matrix": [2, 10], "x": 150, "y": 43, "flags": 4},
+ {"matrix": [2, 11], "x": 165, "y": 43, "flags": 4},
+ {"matrix": [2, 13], "x": 185, "y": 43, "flags": 1},
+ {"matrix": [2, 14], "x": 205, "y": 43, "flags": 1},
+
+ {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1},
+ {"matrix": [3, 1], "x": 18, "y": 64, "flags": 1},
+ {"matrix": [3, 2], "x": 37, "y": 64, "flags": 1},
+ {"matrix": [3, 6], "x": 92, "y": 64, "flags": 4},
+ {"matrix": [3, 10], "x": 146, "y": 64, "flags": 1},
+ {"matrix": [3, 11], "x": 161, "y": 64, "flags": 1},
+ {"matrix": [3, 12], "x": 176, "y": 64, "flags": 1},
+ {"matrix": [3, 13], "x": 190, "y": 64, "flags": 1},
+ {"matrix": [3, 14], "x": 205, "y": 64, "flags": 1},
+ {"matrix": [1, 12], "x": 220, "y": 64, "flags": 1}
+ ]
},
- "matrix_pins": {
- "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"],
- "rows": ["B3", "A15", "A14", "A13"]
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0192"
},
- "diode_direction": "ROW2COL",
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
"layouts": {
"LAYOUT_iso_53": {
"layout": [
@@ -66,7 +111,6 @@
{"matrix": [2, 11], "x": 11.25, "y": 2},
{"matrix": [2, 13], "x": 12.25, "y": 2, "w": 1.75},
{"matrix": [2, 14], "x": 14, "y": 2},
-
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25},
{"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25},
@@ -80,4 +124,4 @@
]
}
}
-}
+} \ No newline at end of file
diff --git a/keyboards/keychron/q9/iso/iso.c b/keyboards/keychron/q9/iso/iso.c
index 1917b61f37..e6a06b3909 100644
--- a/keyboards/keychron/q9/iso/iso.c
+++ b/keyboards/keychron/q9/iso/iso.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
@@ -85,30 +85,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{0, C_4, A_4, B_4} // Right
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 27, 13 },
- { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 52, 26, 28 },
- { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, __, 41, 42 },
- { 43, 44, 45, __, __, __, 46, __, __, __, 47, 48, 49, 50, 51 },
- },
- {
- // LED Index to Physical Position
- {2,0}, {20,0}, {35,0}, {50,0}, {65,0}, {80,0}, {94,0}, {109,0}, {124,0}, {139,0}, {154,0}, {168,0}, {183,0}, {224,0},
- {4,21}, {24,21}, {39,21}, {54,21}, {68,21}, {83,21}, {98,21}, {113,21}, {128,21}, {142,21}, {157,21}, {172,21}, {187,21}, {207,14}, {224,27},
- {0,43}, {17,43}, {31,43}, {46,43}, {61,43}, {76,43}, {91,43}, {105,43}, {120,43}, {135,43}, {150,43}, {165,43}, {185,43}, {205,43},
- {0,64}, {18,64}, {37,64}, {92,64}, {146,64}, {161,64}, {176,64}, {190,64}, {205,64}, {220,64},
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q9/iso/rules.mk b/keyboards/keychron/q9/iso/rules.mk
index cf31e094cb..6e7633bfe0 100644
--- a/keyboards/keychron/q9/iso/rules.mk
+++ b/keyboards/keychron/q9/iso/rules.mk
@@ -1,14 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
+# This file intentionally left blank
diff --git a/keyboards/keychron/q9/iso_encoder/config.h b/keyboards/keychron/q9/iso_encoder/config.h
index 65d7ad7708..6b4a67d526 100644
--- a/keyboards/keychron/q9/iso_encoder/config.h
+++ b/keyboards/keychron/q9/iso_encoder/config.h
@@ -16,12 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 52
-#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
-
-/* Encoder Configuration */
-#define ENCODER_DEFAULT_POS 0x3
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 13
diff --git a/keyboards/keychron/q9/iso_encoder/info.json b/keyboards/keychron/q9/iso_encoder/info.json
index 1c74566da1..087c2f8188 100644
--- a/keyboards/keychron/q9/iso_encoder/info.json
+++ b/keyboards/keychron/q9/iso_encoder/info.json
@@ -1,28 +1,73 @@
{
- "keyboard_name": "Keychron Q9",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0193",
- "device_version": "1.0.0"
- },
- "rgb_matrix": {
- "driver": "snled27351"
- },
- "matrix_pins": {
- "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"],
- "rows": ["B3", "A15", "A14", "A13"]
- },
- "diode_direction": "ROW2COL",
"encoder": {
+ "enabled": true,
"rotary": [
{"pin_a": "B4", "pin_b": "B5"}
]
},
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
+ "rgb_matrix": {
+ "layout": [
+ {"matrix": [0, 0], "x": 2, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 35, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 94, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 109, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 124, "y": 0, "flags": 4},
+ {"matrix": [0, 9], "x": 139, "y": 0, "flags": 4},
+ {"matrix": [0, 10], "x": 154, "y": 0, "flags": 4},
+ {"matrix": [0, 11], "x": 168, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 183, "y": 0, "flags": 4},
+
+ {"matrix": [1, 0], "x": 4, "y": 21, "flags": 8},
+ {"matrix": [1, 1], "x": 24, "y": 21, "flags": 4},
+ {"matrix": [1, 2], "x": 39, "y": 21, "flags": 4},
+ {"matrix": [1, 3], "x": 54, "y": 21, "flags": 4},
+ {"matrix": [1, 4], "x": 68, "y": 21, "flags": 4},
+ {"matrix": [1, 5], "x": 83, "y": 21, "flags": 4},
+ {"matrix": [1, 6], "x": 98, "y": 21, "flags": 4},
+ {"matrix": [1, 7], "x": 113, "y": 21, "flags": 4},
+ {"matrix": [1, 8], "x": 128, "y": 21, "flags": 4},
+ {"matrix": [1, 9], "x": 142, "y": 21, "flags": 4},
+ {"matrix": [1, 10], "x": 157, "y": 21, "flags": 4},
+ {"matrix": [1, 11], "x": 172, "y": 21, "flags": 4},
+ {"matrix": [1, 13], "x": 187, "y": 21, "flags": 4},
+ {"matrix": [0, 13], "x": 207, "y": 14, "flags": 1},
+ {"matrix": [1, 14], "x": 224, "y": 27, "flags": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 43, "flags": 1},
+ {"matrix": [2, 1], "x": 17, "y": 43, "flags": 4},
+ {"matrix": [2, 2], "x": 31, "y": 43, "flags": 4},
+ {"matrix": [2, 3], "x": 46, "y": 43, "flags": 4},
+ {"matrix": [2, 4], "x": 61, "y": 43, "flags": 4},
+ {"matrix": [2, 5], "x": 76, "y": 43, "flags": 4},
+ {"matrix": [2, 6], "x": 91, "y": 43, "flags": 4},
+ {"matrix": [2, 7], "x": 105, "y": 43, "flags": 4},
+ {"matrix": [2, 8], "x": 120, "y": 43, "flags": 4},
+ {"matrix": [2, 9], "x": 135, "y": 43, "flags": 4},
+ {"matrix": [2, 10], "x": 150, "y": 43, "flags": 4},
+ {"matrix": [2, 11], "x": 165, "y": 43, "flags": 4},
+ {"matrix": [2, 13], "x": 185, "y": 43, "flags": 1},
+ {"matrix": [2, 14], "x": 205, "y": 43, "flags": 1},
+
+ {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1},
+ {"matrix": [3, 1], "x": 18, "y": 64, "flags": 1},
+ {"matrix": [3, 2], "x": 37, "y": 64, "flags": 1},
+ {"matrix": [3, 6], "x": 92, "y": 64, "flags": 4},
+ {"matrix": [3, 10], "x": 146, "y": 64, "flags": 1},
+ {"matrix": [3, 11], "x": 161, "y": 64, "flags": 1},
+ {"matrix": [3, 12], "x": 176, "y": 64, "flags": 1},
+ {"matrix": [3, 13], "x": 190, "y": 64, "flags": 1},
+ {"matrix": [3, 14], "x": 205, "y": 64, "flags": 1},
+ {"matrix": [1, 12], "x": 220, "y": 64, "flags": 1}
+ ]
+ },
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0193"
+ },
"layouts": {
"LAYOUT_iso_53": {
"layout": [
@@ -40,7 +85,6 @@
{"matrix": [0, 11], "x": 11.5, "y": 0},
{"matrix": [0, 12], "x": 12.5, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
-
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75},
{"matrix": [1, 1], "x": 1.75, "y": 1},
{"matrix": [1, 2], "x": 2.75, "y": 1},
@@ -56,7 +100,6 @@
{"matrix": [1, 13], "x": 12.75, "y": 1},
{"matrix": [0, 13], "x": 13.75, "y": 0, "w": 1.25, "h": 2},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
-
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
{"matrix": [2, 1], "x": 1.25, "y": 2},
{"matrix": [2, 2], "x": 2.25, "y": 2},
@@ -71,7 +114,6 @@
{"matrix": [2, 11], "x": 11.25, "y": 2},
{"matrix": [2, 13], "x": 12.25, "y": 2, "w": 1.75},
{"matrix": [2, 14], "x": 14, "y": 2},
-
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25},
{"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25},
@@ -85,4 +127,4 @@
]
}
}
-}
+} \ No newline at end of file
diff --git a/keyboards/keychron/q9/iso_encoder/iso_encoder.c b/keyboards/keychron/q9/iso_encoder/iso_encoder.c
index 3a161fe9d7..d607880eb2 100644
--- a/keyboards/keychron/q9/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q9/iso_encoder/iso_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
@@ -85,30 +85,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
{0, C_4, A_4, B_4} // Right
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 26, __ },
- { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 51, 25, 27 },
- { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, __, 40, 41 },
- { 42, 43, 44, __, __, __, 45, __, __, __, 46, 47, 48, 49, 50 },
- },
- {
- // LED Index to Physical Position
- {2,0}, {20,0}, {35,0}, {50,0}, {65,0}, {80,0}, {94,0}, {109,0}, {124,0}, {139,0}, {154,0}, {168,0}, {183,0},
- {4,21}, {24,21}, {39,21}, {54,21}, {68,21}, {83,21}, {98,21}, {113,21}, {128,21}, {142,21}, {157,21}, {172,21}, {187,21}, {207,14}, {224,27},
- {0,43}, {17,43}, {31,43}, {46,43}, {61,43}, {76,43}, {91,43}, {105,43}, {120,43}, {135,43}, {150,43}, {165,43}, {185,43}, {205,43},
- {0,64}, {18,64}, {37,64}, {92,64}, {146,64}, {161,64}, {176,64}, {190,64}, {205,64}, {220,64},
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q9/iso_encoder/rules.mk b/keyboards/keychron/q9/iso_encoder/rules.mk
index ed8fd33800..7ff128fa69 100644
--- a/keyboards/keychron/q9/iso_encoder/rules.mk
+++ b/keyboards/keychron/q9/iso_encoder/rules.mk
@@ -1,16 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable Encoder
-ENCODER_MAP_ENBALE = no
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/keychron/q9/q9.c b/keyboards/keychron/q9/q9.c
index 51dea886f1..d020f6ab43 100644
--- a/keyboards/keychron/q9/q9.c
+++ b/keyboards/keychron/q9/q9.c
@@ -16,13 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b111111111111111,
- 0b111111111111111,
- 0b111111111111111,
- 0b111111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/q9/readme.md b/keyboards/keychron/q9/readme.md
index e2368ff758..c7641f1cf9 100644
--- a/keyboards/keychron/q9/readme.md
+++ b/keyboards/keychron/q9/readme.md
@@ -1,19 +1,27 @@
# Keychron Q9
+![Keychron Q9](https://i.imgur.com/G8xJ4TRh.jpg)
+
A customizable 40% keyboard.
* Keyboard Maintainer: [Keychron](https://github.com/keychron)
* Hardware Supported: Keychron Q9
-* Hardware Availability: [Keychron](https://www.keychron.com)
+* Hardware Availability: [Keychron Q9 QMK Custom Mechanical Keyboard](https://www.keychron.com/products/keychron-q9-qmk-custom-mechanical-keyboard)
Make example for this keyboard (after setting up your build environment):
make keychron/q9/ansi:default
+ make keychron/q9/ansi_encoder:default
+ make keychron/q9/iso:default
+ make keychron/q9/iso_enocder:default
-Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
+Flashing example for this keyboard:
make keychron/q9/ansi:default:flash
+ make keychron/q9/ansi_encoder:default:flash
+ make keychron/q9/iso:default:flash
+ make keychron/q9/iso_encoder:default:flash
-**Reset Key**: Hold down the key located at *K00*, which programmed as *Tab* while plugging in the keyboard.
+**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard.
-See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c
index d264334fa0..ffc213b75b 100755
--- a/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/q9_plus/ansi_encoder/config.h b/keyboards/keychron/q9_plus/ansi_encoder/config.h
index 1943a0fb27..7798a0e5ce 100755
--- a/keyboards/keychron/q9_plus/ansi_encoder/config.h
+++ b/keyboards/keychron/q9_plus/ansi_encoder/config.h
@@ -16,9 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define RGB_MATRIX_LED_COUNT 53
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/q9_plus/config.h b/keyboards/keychron/q9_plus/config.h
index c9ef05b613..340d565490 100755
--- a/keyboards/keychron/q9_plus/config.h
+++ b/keyboards/keychron/q9_plus/config.h
@@ -16,12 +16,6 @@
#pragma once
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID {{ 3, 4 }}
-
/* RGB Matrix Driver Configuration */
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
@@ -36,18 +30,5 @@
#define SNLED27351_CURRENT_TUNE \
{ 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70 }
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
-
/* Old default behavior of mod-taps */
#define HOLD_ON_OTHER_KEY_PRESS
diff --git a/keyboards/keychron/q9_plus/info.json b/keyboards/keychron/q9_plus/info.json
index 9f8703de37..927f5094a6 100755
--- a/keyboards/keychron/q9_plus/info.json
+++ b/keyboards/keychron/q9_plus/info.json
@@ -19,6 +19,14 @@
"nkro": true,
"rgb_matrix": true
},
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "dip_switch": {
+ "matrix_grid": [ [3, 4] ]
+ },
"matrix_pins": {
"cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"],
"rows": ["B3", "A15", "A14", "A13"]
@@ -119,6 +127,7 @@
"solid_reactive_multinexus": true,
"splash": true,
"solid_splash": true
- }
+ },
+ "sleep": true
}
}
diff --git a/keyboards/keychron/q9_plus/q9_plus.c b/keyboards/keychron/q9_plus/q9_plus.c
index 848117d323..77fd5f3cb0 100755
--- a/keyboards/keychron/q9_plus/q9_plus.c
+++ b/keyboards/keychron/q9_plus/q9_plus.c
@@ -16,13 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b111111111111111,
- 0b111111111111111,
- 0b111111111111111,
- 0b111111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
if (!dip_switch_update_user(index, active)) {
diff --git a/keyboards/keychron/s1/ansi/rgb/config.h b/keyboards/keychron/s1/ansi/rgb/config.h
index 647a877a4c..7eea6bb476 100644
--- a/keyboards/keychron/s1/ansi/rgb/config.h
+++ b/keyboards/keychron/s1/ansi/rgb/config.h
@@ -19,68 +19,10 @@
/* RGB Matrix Driver Configuration */
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
-#define DRIVER_1_LED_TOTAL 46
-#define DRIVER_2_LED_TOTAL 38
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
#define SNLED27351_CURRENT_TUNE \
{ 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48 }
-/* Disable RGB lighting when PC is in suspend */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 46
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/keychron/s1/ansi/rgb/info.json b/keyboards/keychron/s1/ansi/rgb/info.json
index 6b49cb18e0..2e78ccfe42 100644
--- a/keyboards/keychron/s1/ansi/rgb/info.json
+++ b/keyboards/keychron/s1/ansi/rgb/info.json
@@ -9,7 +9,31 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "snled27351"
+ "animations": {
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "snled27351",
+ "sleep": true
},
"matrix_pins": {
"cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"],
diff --git a/keyboards/keychron/s1/ansi/rgb/rgb.c b/keyboards/keychron/s1/ansi/rgb/rgb.c
index ca39b0c796..e81e7db402 100644
--- a/keyboards/keychron/s1/ansi/rgb/rgb.c
+++ b/keyboards/keychron/s1/ansi/rgb/rgb.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/s1/ansi/white/config.h b/keyboards/keychron/s1/ansi/white/config.h
index fbe02caeb1..9aedc6b47f 100644
--- a/keyboards/keychron/s1/ansi/white/config.h
+++ b/keyboards/keychron/s1/ansi/white/config.h
@@ -18,48 +18,10 @@
/* LED Matrix Driver Configuration */
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
-#define DRIVER_1_LED_TOTAL 84
-#define LED_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
-
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_6_CHANNEL
#define SNLED27351_CURRENT_TUNE \
{ 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 } // 250mA
// { 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40 } // 127mA
-/* Disable LED lighting when PC is in suspend */
-#define LED_DISABLE_WHEN_USB_SUSPENDED
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 46
-
-// LED Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_led_matrix?id=led-matrix-effects
-#define ENABLE_LED_MATRIX_NONE
-#define ENABLE_LED_MATRIX_SOLID // Static single val, no speed support
-// #define ENABLE_LED_MATRIX_ALPHAS_MODS // Static dual val, speed is val for LEDs marked as modifiers
-#define ENABLE_LED_MATRIX_BREATHING // Cycling brightness animation
-// #define ENABLE_LED_MATRIX_BAND // Band fading brightness scrolling left to right
-#define ENABLE_LED_MATRIX_BAND_PINWHEEL // 3 blade spinning pinwheel fades brightness
-#define ENABLE_LED_MATRIX_BAND_SPIRAL // Spinning spiral fades brightness
-#define ENABLE_LED_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right
-#define ENABLE_LED_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom
-#define ENABLE_LED_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in
-#define ENABLE_LED_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard
-// #if defined(LED_MATRIX_KEYPRESSES) || defined(LED_MATRIX_KEYRELEASES)
-#define LED_MATRIX_KEYPRESSES
-#define LED_MATRIX_KEYRELEASES
-
-#define ENABLE_LED_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit then fades out
-// #define ENABLE_LED_MATRIX_SOLID_REACTIVE_WIDE // Value pulses near a single key hit then fades out
-#define ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTIWIDE // Value pulses near multiple key hits then fades out
-#define ENABLE_LED_MATRIX_SOLID_REACTIVE_CROSS // Value pulses the same column and row of a single key hit then fades out
-// #define ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTICROSS // Value pulses the same column and row of multiple key hits then fades out
-// #define ENABLE_LED_MATRIX_SOLID_REACTIVE_NEXUS // Value pulses away on the same column and row of a single key hit then fades out
-// #define ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTINEXUS // Value pulses away on the same column and row of multiple key hits then fades out
-#define ENABLE_LED_MATRIX_SOLID_SPLASH // Value pulses away from a single key hit then fades out
-#define ENABLE_LED_MATRIX_SOLID_MULTISPLASH // Value pulses away from multiple key hits then fades out
-// #endif
-#define ENABLE_LED_MATRIX_WAVE_LEFT_RIGHT // Sine wave scrolling from left to right
-#define ENBALE_LED_MATRIX_WAVE_UP_DOWN // Sine wave scrolling from up to down
-// #define ENABLE_LED_MATRIX_EFFECT_MAX
diff --git a/keyboards/keychron/s1/ansi/white/info.json b/keyboards/keychron/s1/ansi/white/info.json
index bcd64eea59..0e20c9ebe6 100644
--- a/keyboards/keychron/s1/ansi/white/info.json
+++ b/keyboards/keychron/s1/ansi/white/info.json
@@ -9,7 +9,31 @@
"device_version": "1.0.0"
},
"led_matrix": {
- "driver": "snled27351"
+ "animations":{
+ "alphas_mods": true,
+ "breathing": true,
+ "band": true,
+ "band_pinwheel": true,
+ "band_spiral": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "cycle_out_in": true,
+ "dual_beacon": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_wide": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_cross": true,
+ "solid_reactive_multicross": true,
+ "solid_reactive_nexus": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "multisplash": true,
+ "wave_left_right": true,
+ "wave_up_down": true
+ },
+ "driver": "snled27351",
+ "sleep": true,
+ "react_on_keyup": true
},
"matrix_pins": {
"cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"],
diff --git a/keyboards/keychron/s1/ansi/white/white.c b/keyboards/keychron/s1/ansi/white/white.c
index b3a49ae9eb..d6a5eaf232 100644
--- a/keyboards/keychron/s1/ansi/white/white.c
+++ b/keyboards/keychron/s1/ansi/white/white.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | LED address
diff --git a/keyboards/keychron/s1/config.h b/keyboards/keychron/s1/config.h
index 8c98389522..014faffb92 100644
--- a/keyboards/keychron/s1/config.h
+++ b/keyboards/keychron/s1/config.h
@@ -16,16 +16,6 @@
#pragma once
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {5,4} }
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
#define I2C1_TIMINGR_SCLDEL 3U
diff --git a/keyboards/keychron/s1/info.json b/keyboards/keychron/s1/info.json
new file mode 100644
index 0000000000..c490aeeb28
--- /dev/null
+++ b/keyboards/keychron/s1/info.json
@@ -0,0 +1,10 @@
+{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "dip_switch": {
+ "matrix_grid": [ [5, 4] ]
+ }
+}
diff --git a/keyboards/keychron/s1/s1.c b/keyboards/keychron/s1/s1.c
index d8488dd6ea..2f1b905505 100644
--- a/keyboards/keychron/s1/s1.c
+++ b/keyboards/keychron/s1/s1.c
@@ -16,15 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b111111111111111,
- 0b111111111111111,
- 0b111111111111111,
- 0b111111111111111,
- 0b111111111111111,
- 0b111111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/v1/ansi/ansi.c b/keyboards/keychron/v1/ansi/ansi.c
index ed8a6ed1af..2db3ab782d 100644
--- a/keyboards/keychron/v1/ansi/ansi.c
+++ b/keyboards/keychron/v1/ansi/ansi.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v1/ansi/config.h b/keyboards/keychron/v1/ansi/config.h
index 5d10cae886..2040fa3862 100644
--- a/keyboards/keychron/v1/ansi/config.h
+++ b/keyboards/keychron/v1/ansi/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 45
-#define DRIVER_2_LED_TOTAL 37
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
#define SNLED27351_CURRENT_TUNE \
{ 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 }
diff --git a/keyboards/keychron/v1/ansi/info.json b/keyboards/keychron/v1/ansi/info.json
index 34fdd6ac31..db2526e244 100644
--- a/keyboards/keychron/v1/ansi/info.json
+++ b/keyboards/keychron/v1/ansi/info.json
@@ -8,9 +8,6 @@
"pid": "0x0310",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"processor": "STM32L432",
"bootloader": "stm32-dfu",
"layouts": {
diff --git a/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c
index ed8a6ed1af..2db3ab782d 100644
--- a/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v1/ansi_encoder/config.h b/keyboards/keychron/v1/ansi_encoder/config.h
index ea0733eeaf..242e94583b 100644
--- a/keyboards/keychron/v1/ansi_encoder/config.h
+++ b/keyboards/keychron/v1/ansi_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 45
-#define DRIVER_2_LED_TOTAL 37
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
#define SNLED27351_CURRENT_TUNE \
{ 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 }
diff --git a/keyboards/keychron/v1/ansi_encoder/info.json b/keyboards/keychron/v1/ansi_encoder/info.json
index 43e07609ae..621010039d 100644
--- a/keyboards/keychron/v1/ansi_encoder/info.json
+++ b/keyboards/keychron/v1/ansi_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x0311",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
"rotary": [
{"pin_a": "A10", "pin_b": "A8"}
diff --git a/keyboards/keychron/v1/config.h b/keyboards/keychron/v1/config.h
index e5b6805859..80e01e0291 100644
--- a/keyboards/keychron/v1/config.h
+++ b/keyboards/keychron/v1/config.h
@@ -25,12 +25,6 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {5,4} }
-
/* RGB Matrix Driver Configuration */
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
@@ -43,62 +37,3 @@
#define I2C1_TIMINGR_SCLL 51U
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/keychron/v1/info.json b/keyboards/keychron/v1/info.json
new file mode 100644
index 0000000000..94a45db562
--- /dev/null
+++ b/keyboards/keychron/v1/info.json
@@ -0,0 +1,37 @@
+{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "dip_switch": {
+ "matrix_grid": [ [5, 4] ]
+ },
+ "rgb_matrix": {
+ "animations": {
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ }
+}
diff --git a/keyboards/keychron/v1/iso/config.h b/keyboards/keychron/v1/iso/config.h
index acb35ac7ac..e10bd258ae 100644
--- a/keyboards/keychron/v1/iso/config.h
+++ b/keyboards/keychron/v1/iso/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 45
-#define DRIVER_2_LED_TOTAL 38
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
#define SNLED27351_CURRENT_TUNE \
{ 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 }
diff --git a/keyboards/keychron/v1/iso/info.json b/keyboards/keychron/v1/iso/info.json
index 6dbf50a931..9047aa2bb2 100644
--- a/keyboards/keychron/v1/iso/info.json
+++ b/keyboards/keychron/v1/iso/info.json
@@ -8,9 +8,6 @@
"pid": "0x0312",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"processor": "STM32L432",
"bootloader": "stm32-dfu",
"layouts": {
diff --git a/keyboards/keychron/v1/iso/iso.c b/keyboards/keychron/v1/iso/iso.c
index 00909c85e3..dff029055b 100644
--- a/keyboards/keychron/v1/iso/iso.c
+++ b/keyboards/keychron/v1/iso/iso.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v1/iso_encoder/config.h b/keyboards/keychron/v1/iso_encoder/config.h
index 1a928cd9b7..e5ac7f3fb4 100644
--- a/keyboards/keychron/v1/iso_encoder/config.h
+++ b/keyboards/keychron/v1/iso_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 45
-#define DRIVER_2_LED_TOTAL 38
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
#define SNLED27351_CURRENT_TUNE \
{ 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 }
diff --git a/keyboards/keychron/v1/iso_encoder/info.json b/keyboards/keychron/v1/iso_encoder/info.json
index 1f009ac0c7..557585f82d 100644
--- a/keyboards/keychron/v1/iso_encoder/info.json
+++ b/keyboards/keychron/v1/iso_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x0313",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
"rotary": [
{"pin_a": "A10", "pin_b": "A8"}
diff --git a/keyboards/keychron/v1/iso_encoder/iso_encoder.c b/keyboards/keychron/v1/iso_encoder/iso_encoder.c
index 00909c85e3..dff029055b 100644
--- a/keyboards/keychron/v1/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v1/iso_encoder/iso_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v1/jis/config.h b/keyboards/keychron/v1/jis/config.h
index ef778528fe..3e719e3704 100644
--- a/keyboards/keychron/v1/jis/config.h
+++ b/keyboards/keychron/v1/jis/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 46
-#define DRIVER_2_LED_TOTAL 40
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
#define SNLED27351_CURRENT_TUNE \
{ 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D }
diff --git a/keyboards/keychron/v1/jis/info.json b/keyboards/keychron/v1/jis/info.json
index 28425b5b50..1678c93c66 100644
--- a/keyboards/keychron/v1/jis/info.json
+++ b/keyboards/keychron/v1/jis/info.json
@@ -8,9 +8,6 @@
"pid": "0x0314",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"processor": "STM32L432",
"bootloader": "stm32-dfu",
"layouts": {
diff --git a/keyboards/keychron/v1/jis/jis.c b/keyboards/keychron/v1/jis/jis.c
index 6bc647656d..029c58fd70 100644
--- a/keyboards/keychron/v1/jis/jis.c
+++ b/keyboards/keychron/v1/jis/jis.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v1/jis_encoder/config.h b/keyboards/keychron/v1/jis_encoder/config.h
index 25db44a84c..5709f1ba2e 100644
--- a/keyboards/keychron/v1/jis_encoder/config.h
+++ b/keyboards/keychron/v1/jis_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 46
-#define DRIVER_2_LED_TOTAL 40
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
#define SNLED27351_CURRENT_TUNE \
{ 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D }
diff --git a/keyboards/keychron/v1/jis_encoder/info.json b/keyboards/keychron/v1/jis_encoder/info.json
index 018f154537..7064bcdd55 100644
--- a/keyboards/keychron/v1/jis_encoder/info.json
+++ b/keyboards/keychron/v1/jis_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x0315",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
"rotary": [
{"pin_a": "A10", "pin_b": "A8"}
diff --git a/keyboards/keychron/v1/jis_encoder/jis_encoder.c b/keyboards/keychron/v1/jis_encoder/jis_encoder.c
index 6bc647656d..029c58fd70 100644
--- a/keyboards/keychron/v1/jis_encoder/jis_encoder.c
+++ b/keyboards/keychron/v1/jis_encoder/jis_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v1/v1.c b/keyboards/keychron/v1/v1.c
index 79c5919174..7f93b37bcc 100644
--- a/keyboards/keychron/v1/v1.c
+++ b/keyboards/keychron/v1/v1.c
@@ -16,15 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c
index 8b787aad18..10cf2a85fd 100644
--- a/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v10/ansi_encoder/config.h b/keyboards/keychron/v10/ansi_encoder/config.h
index 8b5595e4d6..78b48be217 100644
--- a/keyboards/keychron/v10/ansi_encoder/config.h
+++ b/keyboards/keychron/v10/ansi_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 47
-#define DRIVER_2_LED_TOTAL 41
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/v10/ansi_encoder/info.json b/keyboards/keychron/v10/ansi_encoder/info.json
index a416601d02..6cbc00a7f6 100644
--- a/keyboards/keychron/v10/ansi_encoder/info.json
+++ b/keyboards/keychron/v10/ansi_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x03A1",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
"rotary": [
{"pin_a": "A10", "pin_b": "A8"}
diff --git a/keyboards/keychron/v10/config.h b/keyboards/keychron/v10/config.h
index d643049c03..c084c4d47d 100644
--- a/keyboards/keychron/v10/config.h
+++ b/keyboards/keychron/v10/config.h
@@ -43,68 +43,3 @@
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
#define SNLED27351_CURRENT_TUNE { 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A }
-
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {5,5} }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* Disable RGB lighting when PC is in suspend */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/keychron/v10/info.json b/keyboards/keychron/v10/info.json
new file mode 100644
index 0000000000..636ef2d9a2
--- /dev/null
+++ b/keyboards/keychron/v10/info.json
@@ -0,0 +1,37 @@
+{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "dip_switch": {
+ "matrix_grid": [ [5, 5] ]
+ },
+ "rgb_matrix": {
+ "animations": {
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ }
+}
diff --git a/keyboards/keychron/v10/iso_encoder/config.h b/keyboards/keychron/v10/iso_encoder/config.h
index 75706949d6..66f54a1f14 100644
--- a/keyboards/keychron/v10/iso_encoder/config.h
+++ b/keyboards/keychron/v10/iso_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 47
-#define DRIVER_2_LED_TOTAL 42
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/v10/iso_encoder/info.json b/keyboards/keychron/v10/iso_encoder/info.json
index 4c6b6580e0..30763236ba 100644
--- a/keyboards/keychron/v10/iso_encoder/info.json
+++ b/keyboards/keychron/v10/iso_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x03A3",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
"rotary": [
{"pin_a": "A10", "pin_b": "A8"}
diff --git a/keyboards/keychron/v10/iso_encoder/iso_encoder.c b/keyboards/keychron/v10/iso_encoder/iso_encoder.c
index f7e0a10470..b4bfb69206 100644
--- a/keyboards/keychron/v10/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v10/iso_encoder/iso_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v10/v10.c b/keyboards/keychron/v10/v10.c
index 2e1e3f090f..1bde388544 100644
--- a/keyboards/keychron/v10/v10.c
+++ b/keyboards/keychron/v10/v10.c
@@ -16,15 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111011111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/v2/ansi/ansi.c b/keyboards/keychron/v2/ansi/ansi.c
index d98a96fdf9..7e3214f175 100644
--- a/keyboards/keychron/v2/ansi/ansi.c
+++ b/keyboards/keychron/v2/ansi/ansi.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v2/ansi/config.h b/keyboards/keychron/v2/ansi/config.h
index 094038d5b3..6ca7d7fb08 100644
--- a/keyboards/keychron/v2/ansi/config.h
+++ b/keyboards/keychron/v2/ansi/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 34
-#define DRIVER_2_LED_TOTAL 33
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
#define SNLED27351_CURRENT_TUNE \
{ 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 }
diff --git a/keyboards/keychron/v2/ansi/info.json b/keyboards/keychron/v2/ansi/info.json
index 3b54b90201..528d437829 100644
--- a/keyboards/keychron/v2/ansi/info.json
+++ b/keyboards/keychron/v2/ansi/info.json
@@ -8,9 +8,6 @@
"pid": "0x0320",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
"rows": ["B4", "B3", "A15", "A14", "A13"]
diff --git a/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c
index 64153d4251..df33725b5e 100644
--- a/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v2/ansi_encoder/config.h b/keyboards/keychron/v2/ansi_encoder/config.h
index 6ee6d1e7c6..61c6d709bf 100644
--- a/keyboards/keychron/v2/ansi_encoder/config.h
+++ b/keyboards/keychron/v2/ansi_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 34
-#define DRIVER_2_LED_TOTAL 33
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/v2/ansi_encoder/info.json b/keyboards/keychron/v2/ansi_encoder/info.json
index f1998272e9..42efdae984 100644
--- a/keyboards/keychron/v2/ansi_encoder/info.json
+++ b/keyboards/keychron/v2/ansi_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x0321",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
"rows": ["B4", "B3", "A15", "A14", "A13"]
diff --git a/keyboards/keychron/v2/config.h b/keyboards/keychron/v2/config.h
index 7efbf8c549..1cbc2e49af 100644
--- a/keyboards/keychron/v2/config.h
+++ b/keyboards/keychron/v2/config.h
@@ -32,69 +32,4 @@
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {4,4} }
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/keychron/v2/info.json b/keyboards/keychron/v2/info.json
new file mode 100644
index 0000000000..553146eb39
--- /dev/null
+++ b/keyboards/keychron/v2/info.json
@@ -0,0 +1,37 @@
+{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "dip_switch": {
+ "matrix_grid": [ [4, 4] ]
+ },
+ "rgb_matrix": {
+ "animations": {
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ }
+}
diff --git a/keyboards/keychron/v2/iso/config.h b/keyboards/keychron/v2/iso/config.h
index b952607d83..7a10ce6d65 100644
--- a/keyboards/keychron/v2/iso/config.h
+++ b/keyboards/keychron/v2/iso/config.h
@@ -16,10 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 34
-#define DRIVER_2_LED_TOTAL 34
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 29
diff --git a/keyboards/keychron/v2/iso/info.json b/keyboards/keychron/v2/iso/info.json
index cfc5ef3c5b..171407e75f 100644
--- a/keyboards/keychron/v2/iso/info.json
+++ b/keyboards/keychron/v2/iso/info.json
@@ -8,9 +8,6 @@
"pid": "0x0322",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
"rows": ["B4", "B3", "A15", "A14", "A13"]
diff --git a/keyboards/keychron/v2/iso/iso.c b/keyboards/keychron/v2/iso/iso.c
index 37cac7337d..ba9d47a2f1 100644
--- a/keyboards/keychron/v2/iso/iso.c
+++ b/keyboards/keychron/v2/iso/iso.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v2/iso_encoder/config.h b/keyboards/keychron/v2/iso_encoder/config.h
index f69d683453..6b4cafa361 100644
--- a/keyboards/keychron/v2/iso_encoder/config.h
+++ b/keyboards/keychron/v2/iso_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 34
-#define DRIVER_2_LED_TOTAL 34
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/v2/iso_encoder/info.json b/keyboards/keychron/v2/iso_encoder/info.json
index d5f630a3c3..75a8bf1f1f 100644
--- a/keyboards/keychron/v2/iso_encoder/info.json
+++ b/keyboards/keychron/v2/iso_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x0323",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
"rows": ["B4", "B3", "A15", "A14", "A13"]
diff --git a/keyboards/keychron/v2/iso_encoder/iso_encoder.c b/keyboards/keychron/v2/iso_encoder/iso_encoder.c
index 37cac7337d..ba9d47a2f1 100644
--- a/keyboards/keychron/v2/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v2/iso_encoder/iso_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v2/jis/config.h b/keyboards/keychron/v2/jis/config.h
index 1b3fd5a27a..4400cbf252 100644
--- a/keyboards/keychron/v2/jis/config.h
+++ b/keyboards/keychron/v2/jis/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 35
-#define DRIVER_2_LED_TOTAL 36
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
#define SNLED27351_CURRENT_TUNE \
{ 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D }
diff --git a/keyboards/keychron/v2/jis/info.json b/keyboards/keychron/v2/jis/info.json
index 124cb0ecc6..64058d4c13 100644
--- a/keyboards/keychron/v2/jis/info.json
+++ b/keyboards/keychron/v2/jis/info.json
@@ -8,9 +8,6 @@
"pid": "0x0324",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
"rows": ["B4", "B3", "A15", "A14", "A13"]
diff --git a/keyboards/keychron/v2/jis/jis.c b/keyboards/keychron/v2/jis/jis.c
index 42285e56ca..0d638b5753 100644
--- a/keyboards/keychron/v2/jis/jis.c
+++ b/keyboards/keychron/v2/jis/jis.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v2/jis_encoder/config.h b/keyboards/keychron/v2/jis_encoder/config.h
index aacac818a4..2723c4e09c 100644
--- a/keyboards/keychron/v2/jis_encoder/config.h
+++ b/keyboards/keychron/v2/jis_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 35
-#define DRIVER_2_LED_TOTAL 36
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
#define SNLED27351_CURRENT_TUNE \
{ 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D }
diff --git a/keyboards/keychron/v2/jis_encoder/info.json b/keyboards/keychron/v2/jis_encoder/info.json
index d3df93819f..12fadfec73 100644
--- a/keyboards/keychron/v2/jis_encoder/info.json
+++ b/keyboards/keychron/v2/jis_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x0325",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
"rows": ["B4", "B3", "A15", "A14", "A13"]
diff --git a/keyboards/keychron/v2/jis_encoder/jis_encoder.c b/keyboards/keychron/v2/jis_encoder/jis_encoder.c
index 5ccbb807cb..10a3ca25a7 100644
--- a/keyboards/keychron/v2/jis_encoder/jis_encoder.c
+++ b/keyboards/keychron/v2/jis_encoder/jis_encoder.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v2/v2.c b/keyboards/keychron/v2/v2.c
index 7703c280df..f2aed82fa9 100644
--- a/keyboards/keychron/v2/v2.c
+++ b/keyboards/keychron/v2/v2.c
@@ -16,14 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b111111111111111,
- 0b111111111111111,
- 0b111111111111111,
- 0b111111111111111,
- 0b111111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/v3/ansi/ansi.c b/keyboards/keychron/v3/ansi/ansi.c
index 16d6b77131..6205b0b01b 100644
--- a/keyboards/keychron/v3/ansi/ansi.c
+++ b/keyboards/keychron/v3/ansi/ansi.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v3/ansi/config.h b/keyboards/keychron/v3/ansi/config.h
index ba64aa96da..8dea820916 100644
--- a/keyboards/keychron/v3/ansi/config.h
+++ b/keyboards/keychron/v3/ansi/config.h
@@ -25,11 +25,6 @@
/* If PH3 used with a stronger pull resistor then the following definition needs be included */
// #define MATRIX_UNSELECT_DRIVE_HIGH
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 48
-#define DRIVER_2_LED_TOTAL 39
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
#define SNLED27351_CURRENT_TUNE \
{ 0x95, 0x95, 0x55, 0x95, 0x95, 0x55, 0x95, 0x95, 0x55, 0x95, 0x95, 0x55 }
diff --git a/keyboards/keychron/v3/ansi/info.json b/keyboards/keychron/v3/ansi/info.json
index 49792690a7..f01b2394a7 100644
--- a/keyboards/keychron/v3/ansi/info.json
+++ b/keyboards/keychron/v3/ansi/info.json
@@ -8,9 +8,6 @@
"pid": "0x0330",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"processor": "STM32L432",
"bootloader": "stm32-dfu",
"layouts": {
diff --git a/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c
index 39fa354539..27f1f1f830 100644
--- a/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v3/ansi_encoder/config.h b/keyboards/keychron/v3/ansi_encoder/config.h
index 6310f181a0..9f2de455b4 100644
--- a/keyboards/keychron/v3/ansi_encoder/config.h
+++ b/keyboards/keychron/v3/ansi_encoder/config.h
@@ -22,11 +22,6 @@
#define MATRIX_COL_PINS \
{ C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN }
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 48
-#define DRIVER_2_LED_TOTAL 39
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/v3/ansi_encoder/info.json b/keyboards/keychron/v3/ansi_encoder/info.json
index ad46ae7a62..2fc194fecc 100644
--- a/keyboards/keychron/v3/ansi_encoder/info.json
+++ b/keyboards/keychron/v3/ansi_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x0331",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
"rotary": [
{"pin_a": "A10", "pin_b": "A8"}
diff --git a/keyboards/keychron/v3/config.h b/keyboards/keychron/v3/config.h
index d3e02d8f81..bfefedfac7 100644
--- a/keyboards/keychron/v3/config.h
+++ b/keyboards/keychron/v3/config.h
@@ -31,68 +31,3 @@
#define I2C1_TIMINGR_SCLL 51U
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
-
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {5, 4} }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/keychron/v3/info.json b/keyboards/keychron/v3/info.json
new file mode 100644
index 0000000000..94a45db562
--- /dev/null
+++ b/keyboards/keychron/v3/info.json
@@ -0,0 +1,37 @@
+{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "dip_switch": {
+ "matrix_grid": [ [5, 4] ]
+ },
+ "rgb_matrix": {
+ "animations": {
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ }
+}
diff --git a/keyboards/keychron/v3/iso/config.h b/keyboards/keychron/v3/iso/config.h
index ca0a03a710..9ec20f6743 100644
--- a/keyboards/keychron/v3/iso/config.h
+++ b/keyboards/keychron/v3/iso/config.h
@@ -25,10 +25,5 @@
/* If PH3 used with a stronger pull resistor then the following definition needs be included */
// #define MATRIX_UNSELECT_DRIVE_HIGH
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 48
-#define DRIVER_2_LED_TOTAL 40
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 49
diff --git a/keyboards/keychron/v3/iso/info.json b/keyboards/keychron/v3/iso/info.json
index 56796b5eb2..f57ccbd7d0 100644
--- a/keyboards/keychron/v3/iso/info.json
+++ b/keyboards/keychron/v3/iso/info.json
@@ -8,9 +8,6 @@
"pid": "0x0332",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"processor": "STM32L432",
"bootloader": "stm32-dfu",
"layouts": {
diff --git a/keyboards/keychron/v3/iso/iso.c b/keyboards/keychron/v3/iso/iso.c
index 24b406467a..be0934b4a0 100644
--- a/keyboards/keychron/v3/iso/iso.c
+++ b/keyboards/keychron/v3/iso/iso.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v3/iso_encoder/config.h b/keyboards/keychron/v3/iso_encoder/config.h
index 7033a2093a..1769ffd4d2 100644
--- a/keyboards/keychron/v3/iso_encoder/config.h
+++ b/keyboards/keychron/v3/iso_encoder/config.h
@@ -22,11 +22,6 @@
#define MATRIX_COL_PINS \
{ C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN }
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 48
-#define DRIVER_2_LED_TOTAL 40
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/v3/iso_encoder/info.json b/keyboards/keychron/v3/iso_encoder/info.json
index 057e4a8d7d..1edb29a741 100644
--- a/keyboards/keychron/v3/iso_encoder/info.json
+++ b/keyboards/keychron/v3/iso_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x0333",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
"rotary": [
{"pin_a": "A10", "pin_b": "A8"}
diff --git a/keyboards/keychron/v3/iso_encoder/iso_encoder.c b/keyboards/keychron/v3/iso_encoder/iso_encoder.c
index 53fe99aac0..0456fb99f9 100644
--- a/keyboards/keychron/v3/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v3/iso_encoder/iso_encoder.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v3/jis/config.h b/keyboards/keychron/v3/jis/config.h
index 10c77c74f0..802a70b646 100644
--- a/keyboards/keychron/v3/jis/config.h
+++ b/keyboards/keychron/v3/jis/config.h
@@ -25,11 +25,6 @@
/* If PH3 used with a stronger pull resistor then the following definition needs be included */
// #define MATRIX_UNSELECT_DRIVE_HIGH
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 48
-#define DRIVER_2_LED_TOTAL 43
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
#define SNLED27351_CURRENT_TUNE \
{ 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 }
diff --git a/keyboards/keychron/v3/jis/info.json b/keyboards/keychron/v3/jis/info.json
index d5601a3b34..cce7372c31 100644
--- a/keyboards/keychron/v3/jis/info.json
+++ b/keyboards/keychron/v3/jis/info.json
@@ -8,9 +8,6 @@
"pid": "0x0334",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"processor": "STM32L432",
"bootloader": "stm32-dfu",
"layouts": {
diff --git a/keyboards/keychron/v3/jis/jis.c b/keyboards/keychron/v3/jis/jis.c
index 70dbf812fa..be93dbc641 100644
--- a/keyboards/keychron/v3/jis/jis.c
+++ b/keyboards/keychron/v3/jis/jis.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v3/jis_encoder/config.h b/keyboards/keychron/v3/jis_encoder/config.h
index 27f37cbed4..37684f0b6f 100644
--- a/keyboards/keychron/v3/jis_encoder/config.h
+++ b/keyboards/keychron/v3/jis_encoder/config.h
@@ -22,11 +22,6 @@
#define MATRIX_COL_PINS \
{ C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN }
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 49
-#define DRIVER_2_LED_TOTAL 43
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
#define SNLED27351_CURRENT_TUNE \
{ 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 }
diff --git a/keyboards/keychron/v3/jis_encoder/info.json b/keyboards/keychron/v3/jis_encoder/info.json
index 968c0396e9..f9a9202eb0 100644
--- a/keyboards/keychron/v3/jis_encoder/info.json
+++ b/keyboards/keychron/v3/jis_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x0335",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
"rotary": [
{"pin_a": "A10", "pin_b": "A8"}
diff --git a/keyboards/keychron/v3/jis_encoder/jis_encoder.c b/keyboards/keychron/v3/jis_encoder/jis_encoder.c
index cf1065eed9..9eea7b3994 100644
--- a/keyboards/keychron/v3/jis_encoder/jis_encoder.c
+++ b/keyboards/keychron/v3/jis_encoder/jis_encoder.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v3/v3.c b/keyboards/keychron/v3/v3.c
index 17ea8f0e97..4452556ca6 100644
--- a/keyboards/keychron/v3/v3.c
+++ b/keyboards/keychron/v3/v3.c
@@ -16,19 +16,6 @@
#include "quantum.h"
-// clang-format off
-
-const matrix_row_t matrix_mask[] = {
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111101111,
-};
-
-// clang-format on
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/v4/ansi/ansi.c b/keyboards/keychron/v4/ansi/ansi.c
index 6326405380..24afdb65b7 100644
--- a/keyboards/keychron/v4/ansi/ansi.c
+++ b/keyboards/keychron/v4/ansi/ansi.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v4/ansi/config.h b/keyboards/keychron/v4/ansi/config.h
index 3cbec72387..bc4da81922 100644
--- a/keyboards/keychron/v4/ansi/config.h
+++ b/keyboards/keychron/v4/ansi/config.h
@@ -16,9 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 61
-#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
-
/* Enable CapsLcok LED*/
#define CAPS_LOCK_LED_INDEX 28
diff --git a/keyboards/keychron/v4/ansi/info.json b/keyboards/keychron/v4/ansi/info.json
index 5fad0ca9b1..a8b980ddd6 100644
--- a/keyboards/keychron/v4/ansi/info.json
+++ b/keyboards/keychron/v4/ansi/info.json
@@ -8,9 +8,6 @@
"pid": "0x0340",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"],
"rows": ["B4", "B3", "A15", "A14", "A13"]
diff --git a/keyboards/keychron/v4/config.h b/keyboards/keychron/v4/config.h
index 8325317c27..04a5779dd9 100644
--- a/keyboards/keychron/v4/config.h
+++ b/keyboards/keychron/v4/config.h
@@ -29,69 +29,4 @@
#define SNLED27351_CURRENT_TUNE \
{ 0xD0, 0xD0, 0x60, 0xD0, 0xD0, 0x60, 0xD0, 0xD0, 0x60, 0xD0, 0xD0, 0x60 }
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {4,4} }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/keychron/v4/info.json b/keyboards/keychron/v4/info.json
new file mode 100644
index 0000000000..553146eb39
--- /dev/null
+++ b/keyboards/keychron/v4/info.json
@@ -0,0 +1,37 @@
+{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "dip_switch": {
+ "matrix_grid": [ [4, 4] ]
+ },
+ "rgb_matrix": {
+ "animations": {
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ }
+}
diff --git a/keyboards/keychron/v4/iso/config.h b/keyboards/keychron/v4/iso/config.h
index db18729155..2486473b2b 100644
--- a/keyboards/keychron/v4/iso/config.h
+++ b/keyboards/keychron/v4/iso/config.h
@@ -16,9 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 62
-#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
-
/* Enable CapsLcok LED*/
#define CAPS_LOCK_LED_INDEX 27
diff --git a/keyboards/keychron/v4/iso/info.json b/keyboards/keychron/v4/iso/info.json
index a53d3ee6a4..81153c3621 100644
--- a/keyboards/keychron/v4/iso/info.json
+++ b/keyboards/keychron/v4/iso/info.json
@@ -8,9 +8,6 @@
"pid": "0x0342",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"],
"rows": ["B4", "B3", "A15", "A14", "A13"]
diff --git a/keyboards/keychron/v4/iso/iso.c b/keyboards/keychron/v4/iso/iso.c
index 9116135a4a..0b59f04d52 100644
--- a/keyboards/keychron/v4/iso/iso.c
+++ b/keyboards/keychron/v4/iso/iso.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v4/v4.c b/keyboards/keychron/v4/v4.c
index 402eadf2d7..d020f6ab43 100644
--- a/keyboards/keychron/v4/v4.c
+++ b/keyboards/keychron/v4/v4.c
@@ -16,14 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b11111111111111,
- 0b11111111111111,
- 0b11111111111111,
- 0b11111111111111,
- 0b11111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/v5/ansi/ansi.c b/keyboards/keychron/v5/ansi/ansi.c
index 073fb0cde0..3f85b6b210 100644
--- a/keyboards/keychron/v5/ansi/ansi.c
+++ b/keyboards/keychron/v5/ansi/ansi.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v5/ansi/config.h b/keyboards/keychron/v5/ansi/config.h
index 7985d43901..ac52268497 100644
--- a/keyboards/keychron/v5/ansi/config.h
+++ b/keyboards/keychron/v5/ansi/config.h
@@ -16,10 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 55
-#define DRIVER_2_LED_TOTAL 45
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 54
diff --git a/keyboards/keychron/v5/ansi/info.json b/keyboards/keychron/v5/ansi/info.json
index eb5cdca90b..2f2e33fecd 100644
--- a/keyboards/keychron/v5/ansi/info.json
+++ b/keyboards/keychron/v5/ansi/info.json
@@ -8,9 +8,6 @@
"pid": "0x0350",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"processor": "STM32L432",
"bootloader": "stm32-dfu",
"layouts": {
diff --git a/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c
index 62ebc3f7b3..06c7ae6d92 100644
--- a/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v5/ansi_encoder/config.h b/keyboards/keychron/v5/ansi_encoder/config.h
index 6ce87e63ab..c0648d56b2 100644
--- a/keyboards/keychron/v5/ansi_encoder/config.h
+++ b/keyboards/keychron/v5/ansi_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 53
-#define DRIVER_2_LED_TOTAL 45
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/v5/ansi_encoder/info.json b/keyboards/keychron/v5/ansi_encoder/info.json
index 00079fca47..1ed410eb7b 100644
--- a/keyboards/keychron/v5/ansi_encoder/info.json
+++ b/keyboards/keychron/v5/ansi_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x0351",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
"rotary": [
{"pin_a": "C14", "pin_b": "A2"}
diff --git a/keyboards/keychron/v5/config.h b/keyboards/keychron/v5/config.h
index 8c4128a43e..622c9efe6c 100644
--- a/keyboards/keychron/v5/config.h
+++ b/keyboards/keychron/v5/config.h
@@ -38,68 +38,3 @@
#define SNLED27351_CURRENT_TUNE \
{ 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56 }
-
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {5, 4} }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/keychron/v5/info.json b/keyboards/keychron/v5/info.json
new file mode 100644
index 0000000000..94a45db562
--- /dev/null
+++ b/keyboards/keychron/v5/info.json
@@ -0,0 +1,37 @@
+{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "dip_switch": {
+ "matrix_grid": [ [5, 4] ]
+ },
+ "rgb_matrix": {
+ "animations": {
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ }
+}
diff --git a/keyboards/keychron/v5/iso/config.h b/keyboards/keychron/v5/iso/config.h
index 5074f47a8f..9080227018 100644
--- a/keyboards/keychron/v5/iso/config.h
+++ b/keyboards/keychron/v5/iso/config.h
@@ -16,10 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 55
-#define DRIVER_2_LED_TOTAL 46
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 53
diff --git a/keyboards/keychron/v5/iso/info.json b/keyboards/keychron/v5/iso/info.json
index badac7f49a..522730b268 100644
--- a/keyboards/keychron/v5/iso/info.json
+++ b/keyboards/keychron/v5/iso/info.json
@@ -8,9 +8,6 @@
"pid": "0x0352",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"processor": "STM32L432",
"bootloader": "stm32-dfu",
"layouts": {
diff --git a/keyboards/keychron/v5/iso/iso.c b/keyboards/keychron/v5/iso/iso.c
index 1552de7d47..7b2739d53e 100644
--- a/keyboards/keychron/v5/iso/iso.c
+++ b/keyboards/keychron/v5/iso/iso.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v5/iso_encoder/config.h b/keyboards/keychron/v5/iso_encoder/config.h
index dab565612e..bfaeff971d 100644
--- a/keyboards/keychron/v5/iso_encoder/config.h
+++ b/keyboards/keychron/v5/iso_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 53
-#define DRIVER_2_LED_TOTAL 46
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/v5/iso_encoder/info.json b/keyboards/keychron/v5/iso_encoder/info.json
index cbf77fc93a..2d4cf28cd1 100644
--- a/keyboards/keychron/v5/iso_encoder/info.json
+++ b/keyboards/keychron/v5/iso_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x0353",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"encoder": {
"rotary": [
{"pin_a": "C14", "pin_b": "A2"}
diff --git a/keyboards/keychron/v5/iso_encoder/iso_encoder.c b/keyboards/keychron/v5/iso_encoder/iso_encoder.c
index 95eb62ae1f..9a13422d2c 100644
--- a/keyboards/keychron/v5/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v5/iso_encoder/iso_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v5/v5.c b/keyboards/keychron/v5/v5.c
index 6d87524b23..050ea18c0c 100644
--- a/keyboards/keychron/v5/v5.c
+++ b/keyboards/keychron/v5/v5.c
@@ -16,15 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b111111111111111111,
- 0b111111111111111111,
- 0b111111111111111111,
- 0b111111111111111111,
- 0b111111111111111111,
- 0b111111111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/v6/ansi/ansi.c b/keyboards/keychron/v6/ansi/ansi.c
index a3f1032a1e..be5bad84ff 100644
--- a/keyboards/keychron/v6/ansi/ansi.c
+++ b/keyboards/keychron/v6/ansi/ansi.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v6/ansi/config.h b/keyboards/keychron/v6/ansi/config.h
index fa9d7e48b3..7f175792df 100644
--- a/keyboards/keychron/v6/ansi/config.h
+++ b/keyboards/keychron/v6/ansi/config.h
@@ -29,11 +29,6 @@
/* Pin used index start of 74HC595 */
#define PIN_START_74HC595 11
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 60
-#define DRIVER_2_LED_TOTAL 48
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED*/
#define CAPS_LOCK_LED_INDEX 61
diff --git a/keyboards/keychron/v6/ansi/info.json b/keyboards/keychron/v6/ansi/info.json
index 3eee229ea8..8b2cc055a8 100644
--- a/keyboards/keychron/v6/ansi/info.json
+++ b/keyboards/keychron/v6/ansi/info.json
@@ -8,9 +8,6 @@
"pid": "0x0360",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"processor": "STM32L432",
"bootloader": "stm32-dfu",
"layouts": {
diff --git a/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c
index 02e0de0b3d..b83a5b0fb0 100644
--- a/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c
@@ -20,7 +20,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v6/ansi_encoder/config.h b/keyboards/keychron/v6/ansi_encoder/config.h
index 0d8d843d2f..748fb4e72e 100644
--- a/keyboards/keychron/v6/ansi_encoder/config.h
+++ b/keyboards/keychron/v6/ansi_encoder/config.h
@@ -31,11 +31,6 @@
/* Pin used index start of 74HC595 */
#define PIN_START_74HC595 10
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 60
-#define DRIVER_2_LED_TOTAL 48
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/v6/config.h b/keyboards/keychron/v6/config.h
index eb2296a172..eabfbf2640 100644
--- a/keyboards/keychron/v6/config.h
+++ b/keyboards/keychron/v6/config.h
@@ -32,69 +32,3 @@
/* Limit the maximum brigtness current of colour white to 500mA */
#define SNLED27351_CURRENT_TUNE { 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48 }
-
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {5, 4} }
-#define SCAN_COUNT_MAX 100
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/keychron/v6/info.json b/keyboards/keychron/v6/info.json
new file mode 100644
index 0000000000..94a45db562
--- /dev/null
+++ b/keyboards/keychron/v6/info.json
@@ -0,0 +1,37 @@
+{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "dip_switch": {
+ "matrix_grid": [ [5, 4] ]
+ },
+ "rgb_matrix": {
+ "animations": {
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ }
+}
diff --git a/keyboards/keychron/v6/iso/config.h b/keyboards/keychron/v6/iso/config.h
index 0a9528d03b..f47c2a08fc 100644
--- a/keyboards/keychron/v6/iso/config.h
+++ b/keyboards/keychron/v6/iso/config.h
@@ -29,11 +29,6 @@
/* Pin used index start of 74HC595 */
#define PIN_START_74HC595 11
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 60
-#define DRIVER_2_LED_TOTAL 49
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED*/
#define CAPS_LOCK_LED_INDEX 60
diff --git a/keyboards/keychron/v6/iso/iso.c b/keyboards/keychron/v6/iso/iso.c
index 7804ca3600..1138cb07d7 100644
--- a/keyboards/keychron/v6/iso/iso.c
+++ b/keyboards/keychron/v6/iso/iso.c
@@ -20,7 +20,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v6/iso_encoder/config.h b/keyboards/keychron/v6/iso_encoder/config.h
index 6e8069f7ec..d638be34cc 100644
--- a/keyboards/keychron/v6/iso_encoder/config.h
+++ b/keyboards/keychron/v6/iso_encoder/config.h
@@ -31,11 +31,6 @@
/* Pin used index start of 74HC595 */
#define PIN_START_74HC595 10
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 60
-#define DRIVER_2_LED_TOTAL 49
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/v6/iso_encoder/iso_encoder.c b/keyboards/keychron/v6/iso_encoder/iso_encoder.c
index bd9189f8b5..47f609d817 100644
--- a/keyboards/keychron/v6/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v6/iso_encoder/iso_encoder.c
@@ -20,7 +20,7 @@
#ifdef RGB_MATRIX_ENABLE
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v6/v6.c b/keyboards/keychron/v6/v6.c
index 0f9305d2d0..8aeab5e952 100644
--- a/keyboards/keychron/v6/v6.c
+++ b/keyboards/keychron/v6/v6.c
@@ -16,15 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b11111111111111111111,
- 0b11111111111111111111,
- 0b11111111111111111111,
- 0b11111111111111111111,
- 0b11111111111111111111,
- 0b11111111111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/v7/ansi/ansi.c b/keyboards/keychron/v7/ansi/ansi.c
index 07a98622a4..132f568519 100644
--- a/keyboards/keychron/v7/ansi/ansi.c
+++ b/keyboards/keychron/v7/ansi/ansi.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v7/ansi/config.h b/keyboards/keychron/v7/ansi/config.h
index 277e505e06..e36809251a 100644
--- a/keyboards/keychron/v7/ansi/config.h
+++ b/keyboards/keychron/v7/ansi/config.h
@@ -16,10 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 37
-#define DRIVER_2_LED_TOTAL 35
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 32
diff --git a/keyboards/keychron/v7/ansi/info.json b/keyboards/keychron/v7/ansi/info.json
index 4088a20ced..ea01b3ff39 100644
--- a/keyboards/keychron/v7/ansi/info.json
+++ b/keyboards/keychron/v7/ansi/info.json
@@ -8,9 +8,6 @@
"pid": "0x0370",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"],
"rows": ["B4", "B3", "A15", "A14", "A13"]
diff --git a/keyboards/keychron/v7/config.h b/keyboards/keychron/v7/config.h
index cff96774e3..849535d67f 100644
--- a/keyboards/keychron/v7/config.h
+++ b/keyboards/keychron/v7/config.h
@@ -30,69 +30,4 @@
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
#define SNLED27351_CURRENT_TUNE { 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70 }
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {4,4} }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/keychron/v7/info.json b/keyboards/keychron/v7/info.json
new file mode 100644
index 0000000000..553146eb39
--- /dev/null
+++ b/keyboards/keychron/v7/info.json
@@ -0,0 +1,37 @@
+{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "dip_switch": {
+ "matrix_grid": [ [4, 4] ]
+ },
+ "rgb_matrix": {
+ "animations": {
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ }
+}
diff --git a/keyboards/keychron/v7/iso/config.h b/keyboards/keychron/v7/iso/config.h
index e9da747ab1..824548a694 100644
--- a/keyboards/keychron/v7/iso/config.h
+++ b/keyboards/keychron/v7/iso/config.h
@@ -16,10 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 37
-#define DRIVER_2_LED_TOTAL 36
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 31
diff --git a/keyboards/keychron/v7/iso/info.json b/keyboards/keychron/v7/iso/info.json
index 97588498ed..e241232d06 100644
--- a/keyboards/keychron/v7/iso/info.json
+++ b/keyboards/keychron/v7/iso/info.json
@@ -8,9 +8,6 @@
"pid": "0x0372",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"],
"rows": ["B4", "B3", "A15", "A14", "A13"]
diff --git a/keyboards/keychron/v7/iso/iso.c b/keyboards/keychron/v7/iso/iso.c
index a35dcb2092..7aaeafe65e 100644
--- a/keyboards/keychron/v7/iso/iso.c
+++ b/keyboards/keychron/v7/iso/iso.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v7/v7.c b/keyboards/keychron/v7/v7.c
index e6b8309cae..215b4922dc 100644
--- a/keyboards/keychron/v7/v7.c
+++ b/keyboards/keychron/v7/v7.c
@@ -16,14 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111111111,
- 0b1111111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {
diff --git a/keyboards/keychron/v8/ansi/ansi.c b/keyboards/keychron/v8/ansi/ansi.c
index bda7ba1d74..e5840fe966 100644
--- a/keyboards/keychron/v8/ansi/ansi.c
+++ b/keyboards/keychron/v8/ansi/ansi.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v8/ansi/config.h b/keyboards/keychron/v8/ansi/config.h
index b818d1d8d3..0ad1e7c132 100644
--- a/keyboards/keychron/v8/ansi/config.h
+++ b/keyboards/keychron/v8/ansi/config.h
@@ -16,10 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 35
-#define DRIVER_2_LED_TOTAL 34
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 30
diff --git a/keyboards/keychron/v8/ansi/info.json b/keyboards/keychron/v8/ansi/info.json
index 06a657a5a8..df6ef81b8d 100644
--- a/keyboards/keychron/v8/ansi/info.json
+++ b/keyboards/keychron/v8/ansi/info.json
@@ -8,9 +8,6 @@
"pid": "0x0380",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
"rows": ["B4", "B3", "A15", "A14", "A13"]
diff --git a/keyboards/keychron/v8/ansi/rules.mk b/keyboards/keychron/v8/ansi/rules.mk
index 08a7658da3..50b09aa58a 100644
--- a/keyboards/keychron/v8/ansi/rules.mk
+++ b/keyboards/keychron/v8/ansi/rules.mk
@@ -7,10 +7,5 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = no # Enable Encoder
-ENCODER_MAP_ENABLE = no
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
diff --git a/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c
index bda7ba1d74..e5840fe966 100644
--- a/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v8/ansi_encoder/config.h b/keyboards/keychron/v8/ansi_encoder/config.h
index 57b9bd0270..e042cdd978 100644
--- a/keyboards/keychron/v8/ansi_encoder/config.h
+++ b/keyboards/keychron/v8/ansi_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 35
-#define DRIVER_2_LED_TOTAL 34
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/v8/ansi_encoder/info.json b/keyboards/keychron/v8/ansi_encoder/info.json
index 6202a306c5..100d215ee8 100644
--- a/keyboards/keychron/v8/ansi_encoder/info.json
+++ b/keyboards/keychron/v8/ansi_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x0381",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
"rows": ["B4", "B3", "A15", "A14", "A13"]
diff --git a/keyboards/keychron/v8/ansi_encoder/rules.mk b/keyboards/keychron/v8/ansi_encoder/rules.mk
index d53dc0f5d5..bc154c1788 100644
--- a/keyboards/keychron/v8/ansi_encoder/rules.mk
+++ b/keyboards/keychron/v8/ansi_encoder/rules.mk
@@ -7,10 +7,6 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
-ENCODER_MAP_ENABLE = no
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
diff --git a/keyboards/keychron/v8/config.h b/keyboards/keychron/v8/config.h
index 3a860e8eb6..54933f656f 100644
--- a/keyboards/keychron/v8/config.h
+++ b/keyboards/keychron/v8/config.h
@@ -33,69 +33,4 @@
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
#define SNLED27351_CURRENT_TUNE { 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60 }
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {4, 4} }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* Turn off effects when suspended */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/keychron/v8/info.json b/keyboards/keychron/v8/info.json
new file mode 100644
index 0000000000..553146eb39
--- /dev/null
+++ b/keyboards/keychron/v8/info.json
@@ -0,0 +1,37 @@
+{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "dip_switch": {
+ "matrix_grid": [ [4, 4] ]
+ },
+ "rgb_matrix": {
+ "animations": {
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "snled27351",
+ "sleep": true
+ }
+}
diff --git a/keyboards/keychron/v8/iso/config.h b/keyboards/keychron/v8/iso/config.h
index 3a62cba38e..910798fd5a 100644
--- a/keyboards/keychron/v8/iso/config.h
+++ b/keyboards/keychron/v8/iso/config.h
@@ -16,10 +16,5 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 35
-#define DRIVER_2_LED_TOTAL 35
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 29
diff --git a/keyboards/keychron/v8/iso/info.json b/keyboards/keychron/v8/iso/info.json
index 8b40b7d065..d789740644 100644
--- a/keyboards/keychron/v8/iso/info.json
+++ b/keyboards/keychron/v8/iso/info.json
@@ -8,9 +8,6 @@
"pid": "0x0382",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
"rows": ["B4", "B3", "A15", "A14", "A13"]
diff --git a/keyboards/keychron/v8/iso/iso.c b/keyboards/keychron/v8/iso/iso.c
index 88040c3ab8..07b350209d 100644
--- a/keyboards/keychron/v8/iso/iso.c
+++ b/keyboards/keychron/v8/iso/iso.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v8/iso_encoder/config.h b/keyboards/keychron/v8/iso_encoder/config.h
index 0bb4fbf821..5ca12b8708 100644
--- a/keyboards/keychron/v8/iso_encoder/config.h
+++ b/keyboards/keychron/v8/iso_encoder/config.h
@@ -16,11 +16,6 @@
#pragma once
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 35
-#define DRIVER_2_LED_TOTAL 35
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
/* Encoder Configuration */
#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/v8/iso_encoder/info.json b/keyboards/keychron/v8/iso_encoder/info.json
index 3d04699651..23efd329aa 100644
--- a/keyboards/keychron/v8/iso_encoder/info.json
+++ b/keyboards/keychron/v8/iso_encoder/info.json
@@ -8,9 +8,6 @@
"pid": "0x0383",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "snled27351"
- },
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
"rows": ["B4", "B3", "A15", "A14", "A13"]
diff --git a/keyboards/keychron/v8/iso_encoder/iso_encoder.c b/keyboards/keychron/v8/iso_encoder/iso_encoder.c
index 88040c3ab8..07b350209d 100644
--- a/keyboards/keychron/v8/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v8/iso_encoder/iso_encoder.c
@@ -20,7 +20,7 @@
// clang-format off
-const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
* driver
* | R location
diff --git a/keyboards/keychron/v8/iso_encoder/rules.mk b/keyboards/keychron/v8/iso_encoder/rules.mk
index d53dc0f5d5..bc154c1788 100644
--- a/keyboards/keychron/v8/iso_encoder/rules.mk
+++ b/keyboards/keychron/v8/iso_encoder/rules.mk
@@ -7,10 +7,6 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
-ENCODER_MAP_ENABLE = no
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
diff --git a/keyboards/keychron/v8/v8.c b/keyboards/keychron/v8/v8.c
index 38d3cada17..5cc6c0782c 100644
--- a/keyboards/keychron/v8/v8.c
+++ b/keyboards/keychron/v8/v8.c
@@ -16,14 +16,6 @@
#include "quantum.h"
-const matrix_row_t matrix_mask[] = {
- 0b111111111111111,
- 0b111111111111111,
- 0b111111111111111,
- 0b111111111111111,
- 0b111111111101111,
-};
-
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_kb(uint8_t index, bool active) {