aboutsummaryrefslogtreecommitdiff
path: root/keyboards
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/40percentclub/ut47/ut47.c2
-rw-r--r--keyboards/acheron/athena/alpha/alpha.c2
-rw-r--r--keyboards/acheron/austin/austin.c18
-rwxr-xr-xkeyboards/acheron/austin/keyboard.json5
-rwxr-xr-xkeyboards/acheron/elongate/delta/delta.c2
-rw-r--r--keyboards/aeboards/ext65/rev1/keyboard.json5
-rw-r--r--keyboards/aeboards/ext65/rev1/rev1.c19
-rw-r--r--keyboards/aeboards/ext65/rev2/keyboard.json5
-rw-r--r--keyboards/aeboards/ext65/rev2/rev2.c15
-rw-r--r--keyboards/aeboards/ext65/rev3/rev3.c4
-rw-r--r--keyboards/ai03/vega/keyboard.json5
-rw-r--r--keyboards/ai03/vega/vega.c37
-rw-r--r--keyboards/atreus/astar_mirrored/config.h19
-rw-r--r--keyboards/atreus/atreus.h51
-rw-r--r--keyboards/atreus/feather/config.h19
-rw-r--r--keyboards/atreus/info.json142
-rw-r--r--keyboards/atreus/keymaps/default/keymap.c6
-rw-r--r--keyboards/atreus/keymaps/via/keymap.c8
-rw-r--r--keyboards/atreus/keymaps/workman/config.h1
-rw-r--r--keyboards/atreus/keymaps/workman/keymap.c6
-rw-r--r--keyboards/atreus/promicro/keyboard.json3
-rw-r--r--keyboards/bastardkb/tbk/keyboard.json111
-rw-r--r--keyboards/bastardkb/tbk/keymaps/default/keymap.c60
-rw-r--r--keyboards/bastardkb/tbk/readme.md22
-rw-r--r--keyboards/bear_face/info.json19
-rw-r--r--keyboards/bear_face/rules.mk1
-rw-r--r--keyboards/bear_face/v1/keyboard.json6
-rw-r--r--keyboards/bear_face/v1/keymaps/default/keymap.c32
-rw-r--r--keyboards/bear_face/v1/v1.c34
-rw-r--r--keyboards/bear_face/v2/keyboard.json100
-rw-r--r--keyboards/bear_face/v2/keymaps/default/keymap.c22
-rw-r--r--keyboards/bear_face/v2/keymaps/default/readme.md4
-rw-r--r--keyboards/bear_face/v2/keymaps/default_iso/keymap.c22
-rw-r--r--keyboards/bear_face/v2/v2.c34
-rw-r--r--keyboards/bear_face/v3/keyboard.json287
-rw-r--r--keyboards/bear_face/v3/keymaps/default/keymap.c92
-rw-r--r--keyboards/bear_face/v3/keymaps/default/readme.md18
-rw-r--r--keyboards/bear_face/v3/keymaps/default_iso/keymap.c92
-rw-r--r--keyboards/bear_face/v3/keymaps/default_iso/readme.md18
-rw-r--r--keyboards/bioi/g60/g60.c28
-rw-r--r--keyboards/bioi/g60/keyboard.json4
-rw-r--r--keyboards/bioi/morgan65/keyboard.json4
-rw-r--r--keyboards/bioi/morgan65/morgan65.c28
-rw-r--r--keyboards/bioi/s65/keyboard.json4
-rw-r--r--keyboards/bioi/s65/s65.c27
-rw-r--r--keyboards/boardsource/lib/oled.c20
-rw-r--r--keyboards/boardsource/lib/oled.h (renamed from keyboards/boardsource/unicorne/unicorne.h)95
-rw-r--r--keyboards/boardsource/lulu/avr/rules.mk1
-rw-r--r--keyboards/boardsource/lulu/lulu.c222
-rw-r--r--keyboards/boardsource/lulu/rp2040/rules.mk1
-rw-r--r--keyboards/boardsource/the_q/keyboard.json142
-rw-r--r--keyboards/boardsource/the_q/keymaps/default/keymap.json25
-rw-r--r--keyboards/boardsource/the_q/keymaps/via/keymap.json30
-rw-r--r--keyboards/boardsource/the_q/readme.md23
-rw-r--r--keyboards/boardsource/the_q/rules.mk1
-rw-r--r--keyboards/boardsource/the_q/the_q.c14
-rw-r--r--keyboards/boardsource/unicorne/rules.mk1
-rw-r--r--keyboards/boardsource/unicorne/unicorne.c22
-rw-r--r--keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c6
-rw-r--r--keyboards/cheshire/curiosity/curiosity.c17
-rw-r--r--keyboards/cheshire/curiosity/keyboard.json6
-rw-r--r--keyboards/clueboard/2x1800/2019/2019.c14
-rw-r--r--keyboards/clueboard/2x1800/2019/keyboard.json6
-rw-r--r--keyboards/clueboard/2x1800/2021/2021.c4
-rw-r--r--keyboards/converter/usb_usb/custom_matrix.cpp1
-rw-r--r--keyboards/converter/xmk/xmk.c2
-rw-r--r--keyboards/dailycraft/wings42/rev2/keymaps/via/config.h4
-rwxr-xr-xkeyboards/dichotomy/keymaps/default/keymap.c16
-rw-r--r--keyboards/dnworks/tkl87/config.h (renamed from keyboards/dnworks/9973/config.h)0
-rw-r--r--keyboards/dnworks/tkl87/keyboard.json (renamed from keyboards/dnworks/9973/keyboard.json)2
-rw-r--r--keyboards/dnworks/tkl87/keymaps/default/keymap.c (renamed from keyboards/dnworks/9973/keymaps/default/keymap.c)0
-rw-r--r--keyboards/dnworks/tkl87/keymaps/via/keymap.c (renamed from keyboards/dnworks/9973/keymaps/via/keymap.c)0
-rw-r--r--keyboards/dnworks/tkl87/keymaps/via/rules.mk (renamed from keyboards/dnworks/9973/keymaps/via/rules.mk)0
-rw-r--r--keyboards/dnworks/tkl87/readme.md (renamed from keyboards/dnworks/9973/readme.md)16
-rw-r--r--keyboards/doio/kb30/kb30.c28
-rw-r--r--keyboards/doio/kb30/keyboard.json45
-rw-r--r--keyboards/doppelganger/doppelganger.c14
-rw-r--r--keyboards/doppelganger/keyboard.json4
-rw-r--r--keyboards/duck/orion/v3/keyboard.json6
-rw-r--r--keyboards/duck/orion/v3/matrix.c13
-rw-r--r--keyboards/duck/orion/v3/v3.c39
-rw-r--r--keyboards/durgod/k310/k310.c2
-rw-r--r--keyboards/durgod/k320/k320.c2
-rw-r--r--keyboards/dztech/bocc/bocc.c29
-rw-r--r--keyboards/dztech/bocc/keyboard.json4
-rw-r--r--keyboards/ealdin/quadrant/keyboard.json3
-rw-r--r--keyboards/ealdin/quadrant/quadrant.c13
-rw-r--r--keyboards/enviousdesign/commissions/mini1800/mini1800.c18
-rw-r--r--keyboards/evyd13/gh80_3700/gh80_3700.c14
-rw-r--r--keyboards/evyd13/gh80_3700/keyboard.json4
-rw-r--r--keyboards/evyd13/gud70/gud70.c2
-rw-r--r--keyboards/exclusive/e6_rgb/e6_rgb.c4
-rw-r--r--keyboards/exclusive/e85/hotswap/hotswap.c32
-rw-r--r--keyboards/exclusive/e85/hotswap/keyboard.json4
-rw-r--r--keyboards/exclusive/e85/soldered/keyboard.json4
-rw-r--r--keyboards/exclusive/e85/soldered/soldered.c32
-rw-r--r--keyboards/fjlabs/bolsa65/bolsa65.c28
-rw-r--r--keyboards/fjlabs/bolsa65/keyboard.json3
-rw-r--r--keyboards/flx/virgo/keyboard.json5
-rw-r--r--keyboards/flx/virgo/virgo.c34
-rw-r--r--keyboards/ghs/rar/keyboard.json4
-rw-r--r--keyboards/ghs/rar/rar.c36
-rw-r--r--keyboards/gray_studio/think65/solder/keyboard.json4
-rw-r--r--keyboards/gray_studio/think65/solder/solder.c36
-rw-r--r--keyboards/handwired/aek64/aek64.c13
-rw-r--r--keyboards/handwired/battleship_gamepad/battleship_gamepad.c8
-rw-r--r--keyboards/handwired/battleship_gamepad/config.h21
-rw-r--r--keyboards/handwired/battleship_gamepad/keyboard.json8
-rw-r--r--keyboards/handwired/battleship_gamepad/rules.mk1
-rw-r--r--keyboards/handwired/colorlice/colorlice.c15
-rw-r--r--keyboards/handwired/colorlice/keyboard.json6
-rw-r--r--keyboards/handwired/evk/v1_3/v1_3.c9
-rw-r--r--keyboards/handwired/jtallbean/split_65/keyboard.json3
-rw-r--r--keyboards/handwired/jtallbean/split_65/split_65.c43
-rw-r--r--keyboards/handwired/prime_exl_plus/keyboard.json4
-rw-r--r--keyboards/handwired/prime_exl_plus/prime_exl_plus.c19
-rw-r--r--keyboards/handwired/retro_refit/keyboard.json6
-rw-r--r--keyboards/handwired/retro_refit/retro_refit.c12
-rw-r--r--keyboards/handwired/selene/keyboard.json5
-rw-r--r--keyboards/handwired/selene/selene.c20
-rw-r--r--keyboards/handwired/selene/selene.h23
-rw-r--r--keyboards/handwired/sick68/keymaps/via/config.h4
-rw-r--r--keyboards/handwired/z150/keyboard.json6
-rw-r--r--keyboards/handwired/z150/z150.c39
-rw-r--r--keyboards/heliar/wm1_hotswap/keyboard.json6
-rw-r--r--keyboards/heliar/wm1_hotswap/wm1_hotswap.c39
-rw-r--r--keyboards/hineybush/h10/h10.c34
-rw-r--r--keyboards/hineybush/h10/keyboard.json4
-rw-r--r--keyboards/hineybush/h60/h60.c31
-rw-r--r--keyboards/hineybush/h60/keyboard.json4
-rw-r--r--keyboards/hineybush/h87a/h87a.c16
-rw-r--r--keyboards/hineybush/h87a/keyboard.json5
-rw-r--r--keyboards/hineybush/h88/h88.c16
-rw-r--r--keyboards/hineybush/h88/keyboard.json5
-rw-r--r--keyboards/hineybush/physix/keyboard.json4
-rw-r--r--keyboards/hineybush/physix/physix.c49
-rw-r--r--keyboards/ibm/model_m/ashpil_usbc/ashpil_usbc.c36
-rw-r--r--keyboards/ibm/model_m/ashpil_usbc/keyboard.json6
-rw-r--r--keyboards/ibm/model_m/mschwingen/mschwingen.c2
-rw-r--r--keyboards/ibm/model_m/teensypp/keyboard.json6
-rw-r--r--keyboards/ibm/model_m/teensypp/teensypp.c36
-rw-r--r--keyboards/ibm/model_m/yugo_m/keyboard.json6
-rw-r--r--keyboards/ibm/model_m/yugo_m/yugo_m.c35
-rw-r--r--keyboards/idb/idb_60/idb_60.c2
-rw-r--r--keyboards/ilumkb/volcano660/keyboard.json6
-rw-r--r--keyboards/ilumkb/volcano660/volcano660.c34
-rw-r--r--keyboards/inett_studio/sqx/hotswap/hotswap.c4
-rw-r--r--keyboards/inett_studio/sqx/universal/universal.c4
-rw-r--r--keyboards/jae/j01/j01.c38
-rw-r--r--keyboards/jae/j01/keyboard.json4
-rw-r--r--keyboards/jels/jels88/jels88.c38
-rw-r--r--keyboards/jels/jels88/keyboard.json4
-rw-r--r--keyboards/kabedon/kabedon980/kabedon980.c8
-rw-r--r--keyboards/kabedon/kabedon980/keyboard.json4
-rw-r--r--keyboards/kapcave/gskt00/keymaps/default-poly/config.h4
-rw-r--r--keyboards/kbdfans/bella/soldered/keyboard.json4
-rwxr-xr-xkeyboards/kbdfans/bella/soldered/soldered.c28
-rw-r--r--keyboards/kbdfans/maja_soldered/keyboard.json4
-rwxr-xr-xkeyboards/kbdfans/maja_soldered/maja_soldered.c29
-rw-r--r--keyboards/kbdfans/phaseone/phaseone.c2
-rw-r--r--keyboards/kc60se/kc60se.c30
-rw-r--r--keyboards/kc60se/keyboard.json4
-rw-r--r--keyboards/kkatano/wallaby/keyboard.json4
-rw-r--r--keyboards/kkatano/wallaby/wallaby.c25
-rw-r--r--keyboards/kkatano/yurei/keyboard.json4
-rw-r--r--keyboards/kkatano/yurei/yurei.c25
-rw-r--r--keyboards/kopibeng/mnk88/mnk88.c36
-rw-r--r--keyboards/kopibeng/xt8x/xt8x.c15
-rw-r--r--keyboards/maple_computing/lets_split_eh/config.h (renamed from keyboards/maple_computing/lets_split_eh/eh/config.h)0
-rw-r--r--keyboards/maple_computing/lets_split_eh/eh/rules.mk2
-rw-r--r--keyboards/maple_computing/lets_split_eh/keyboard.json (renamed from keyboards/maple_computing/lets_split_eh/eh/keyboard.json)3
-rw-r--r--keyboards/maple_computing/lets_split_eh/lets_split_eh.c (renamed from keyboards/maple_computing/lets_split_eh/eh/eh.c)0
-rw-r--r--keyboards/maple_computing/lets_split_eh/readme.md2
-rw-r--r--keyboards/maple_computing/lets_split_eh/rules.mk3
-rw-r--r--keyboards/marksard/leftover30/keyboard.json4
-rw-r--r--keyboards/marksard/leftover30/leftover30.c37
-rw-r--r--keyboards/masterworks/classy_tkl/rev_a/keyboard.json4
-rw-r--r--keyboards/masterworks/classy_tkl/rev_a/rev_a.c42
-rw-r--r--keyboards/matrix/cain_re/cain_re.c40
-rw-r--r--keyboards/matrix/cain_re/config.h24
-rw-r--r--keyboards/matrix/cain_re/keyboard.json5
-rw-r--r--keyboards/matrix/falcon/falcon.c1
-rw-r--r--keyboards/matrix/m12og/rev2/keyboard.json6
-rw-r--r--keyboards/matrix/m12og/rev2/rev2.c23
-rw-r--r--keyboards/mc_76k/keyboard.json4
-rw-r--r--keyboards/mc_76k/mc_76k.c34
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c4
-rw-r--r--keyboards/mechlovin/hannah60rgb/rev2/rev2.c4
-rw-r--r--keyboards/mechlovin/kay65/kay65.c6
-rw-r--r--keyboards/mechlovin/zed1800/zed1800.c4
-rw-r--r--keyboards/mechlovin/zed65/no_backlight/wearhaus66/wearhaus66.c5
-rw-r--r--keyboards/mode/m256wh/config.h2
-rw-r--r--keyboards/mode/m256wh/keymaps/via/config.h (renamed from keyboards/punk75/config.h)4
-rw-r--r--keyboards/mode/m256wh/keymaps/via/keymap.c132
-rw-r--r--keyboards/mode/m256wh/m256wh.c154
-rw-r--r--keyboards/mode/m256ws/config.h2
-rw-r--r--keyboards/mode/m256ws/keymaps/via/config.h (renamed from keyboards/handwired/z150/config.h)22
-rw-r--r--keyboards/mode/m256ws/keymaps/via/keymap.c132
-rw-r--r--keyboards/mode/m256ws/m256ws.c153
-rw-r--r--keyboards/monsgeek/m3/m3.c2
-rw-r--r--keyboards/mt/mt84/config.h18
-rw-r--r--keyboards/mt/mt84/keyboard.json1
-rw-r--r--keyboards/mt/mt84/keymaps/default/keymap.c18
-rw-r--r--keyboards/mt/mt84/keymaps/via/keymap.c18
-rw-r--r--keyboards/mt/mt84/mt84.c18
-rw-r--r--keyboards/noxary/220/220.c34
-rw-r--r--keyboards/noxary/220/keyboard.json3
-rw-r--r--keyboards/noxary/268_2/268_2.c30
-rw-r--r--keyboards/noxary/268_2/keyboard.json3
-rw-r--r--keyboards/noxary/280/280.c37
-rw-r--r--keyboards/noxary/280/keyboard.json4
-rw-r--r--keyboards/noxary/x268/keyboard.json3
-rw-r--r--keyboards/noxary/x268/x268.c34
-rw-r--r--keyboards/nullbitsco/snap/snap.c84
-rw-r--r--keyboards/nullbitsco/snap/snap.h12
-rw-r--r--keyboards/omnikeyish/omnikeyish.c8
-rw-r--r--keyboards/ortho5by12/keyboard.json4
-rw-r--r--keyboards/ortho5by12/ortho5by12.c30
-rw-r--r--keyboards/percent/canoe_gen2/canoe_gen2.c15
-rw-r--r--keyboards/percent/canoe_gen2/keyboard.json4
-rw-r--r--keyboards/pica40/rev2/rev2.c4
-rw-r--r--keyboards/planck/rev7/keymaps/default/config.h7
-rw-r--r--keyboards/planck/rev7/keymaps/default/keymap.c89
-rw-r--r--keyboards/planck/rev7/matrix.c22
-rw-r--r--keyboards/planck/rev7/readme.md37
-rw-r--r--keyboards/ploopyco/mouse/config.h4
-rw-r--r--keyboards/ploopyco/ploopyco.c4
-rw-r--r--keyboards/ploopyco/trackball/config.h4
-rw-r--r--keyboards/ploopyco/trackball_mini/config.h4
-rw-r--r--keyboards/ploopyco/trackball_thumb/config.h4
-rw-r--r--keyboards/pom_keyboards/tnln95/keyboard.json4
-rw-r--r--keyboards/pom_keyboards/tnln95/tnln95.c35
-rw-r--r--keyboards/projectd/75/ansi/ansi.c3
-rw-r--r--keyboards/projectkb/alice/alice.c20
-rw-r--r--keyboards/projectkb/alice/rev1/config.h4
-rw-r--r--keyboards/projectkb/alice/rev1/keyboard.json5
-rw-r--r--keyboards/projectkb/alice/rev2/config.h4
-rw-r--r--keyboards/projectkb/alice/rev2/keyboard.json5
-rw-r--r--keyboards/punk75/keyboard.json4
-rw-r--r--keyboards/punk75/keymaps/default/keymap.c2
-rw-r--r--keyboards/punk75/keymaps/via/keymap.c2
-rw-r--r--keyboards/punk75/punk75.c32
-rw-r--r--keyboards/quad_h/lb75/keyboard.json5
-rw-r--r--keyboards/quad_h/lb75/lb75.c39
-rw-r--r--keyboards/redscarf_i/keyboard.json4
-rw-r--r--keyboards/redscarf_i/redscarf_i.c10
-rw-r--r--keyboards/rgbkb/sol/keymaps/default/keymap.c2
-rw-r--r--keyboards/rgbkb/sol/rev2/config.h8
-rw-r--r--keyboards/rmi_kb/wete/v1/keyboard.json6
-rw-r--r--keyboards/rmi_kb/wete/v1/v1.c35
-rw-r--r--keyboards/rubi/keyboard.json3
-rw-r--r--keyboards/rubi/rubi.c9
-rw-r--r--keyboards/sirius/unigo66/custom_matrix.cpp1
-rw-r--r--keyboards/sneakbox/aliceclone/aliceclone.c36
-rw-r--r--keyboards/sneakbox/aliceclone/keyboard.json5
-rw-r--r--keyboards/splitkb/kyria/info.json1
-rw-r--r--keyboards/splitkb/kyria/rev1/base/keyboard.json25
-rw-r--r--keyboards/splitkb/kyria/rev1/config.h30
-rw-r--r--keyboards/splitkb/kyria/rev1/info.json17
-rw-r--r--keyboards/splitkb/kyria/rev1/proton_c/config.h17
-rw-r--r--keyboards/splitkb/kyria/rev1/proton_c/keyboard.json23
-rw-r--r--keyboards/splitkb/kyria/rev1/proton_c/rules.mk1
-rw-r--r--keyboards/splitkb/kyria/rev2/base/keyboard.json34
-rw-r--r--keyboards/splitkb/kyria/rev2/config.h31
-rw-r--r--keyboards/splitkb/kyria/rev2/info.json23
-rw-r--r--keyboards/splitkb/kyria/rev2/proton_c/config.h17
-rw-r--r--keyboards/splitkb/kyria/rev2/proton_c/keyboard.json32
-rw-r--r--keyboards/splitkb/kyria/rev2/proton_c/rules.mk1
-rw-r--r--keyboards/splitkb/kyria/rev3/config.h7
-rw-r--r--keyboards/splitkb/kyria/rev3/keyboard.json4
-rw-r--r--keyboards/switchplate/southpaw_65/keyboard.json4
-rw-r--r--keyboards/switchplate/southpaw_65/southpaw_65.c30
-rw-r--r--keyboards/switchplate/southpaw_fullsize/keyboard.json6
-rw-r--r--keyboards/switchplate/southpaw_fullsize/southpaw_fullsize.c51
-rw-r--r--keyboards/system76/launch_1/launch_1.c6
-rw-r--r--keyboards/takashicompany/dogtag/keyboard.json22
-rw-r--r--keyboards/team0110/p1800fl/keyboard.json5
-rw-r--r--keyboards/team0110/p1800fl/p1800fl.c28
-rw-r--r--keyboards/terrazzo/readme.md4
-rw-r--r--keyboards/tkc/osav2/keyboard.json5
-rw-r--r--keyboards/tkc/osav2/osav2.c33
-rw-r--r--keyboards/tr60w/keyboard.json6
-rw-r--r--keyboards/tr60w/tr60w.c11
-rw-r--r--keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/overnumpad_1xb.c2
-rw-r--r--keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/overnumpad_1xb.c2
-rw-r--r--keyboards/viktus/sp111/keyboard.json5
-rw-r--r--keyboards/viktus/sp111/sp111.c18
-rw-r--r--keyboards/westfoxtrot/cypher/rev1/keyboard.json5
-rw-r--r--keyboards/westfoxtrot/cypher/rev1/rev1.c31
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/keyboard.json5
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/rev5.c31
-rw-r--r--keyboards/westfoxtrot/prophet/keyboard.json3
-rw-r--r--keyboards/westfoxtrot/prophet/prophet.c11
-rw-r--r--keyboards/wilba_tech/wt69_a/keyboard.json3
-rw-r--r--keyboards/wilba_tech/wt69_a/wt69_a.c30
-rw-r--r--keyboards/wilba_tech/wt70_jb/keyboard.json3
-rw-r--r--keyboards/wilba_tech/wt70_jb/wt70_jb.c15
-rw-r--r--keyboards/winry/winry315/keymaps/via/keymap.c5
-rw-r--r--keyboards/winry/winry315/winry315.c12
-rw-r--r--keyboards/winry/winry315/winry315.h14
-rw-r--r--keyboards/wolfmarkclub/wm1/keyboard.json5
-rw-r--r--keyboards/wolfmarkclub/wm1/wm1.c16
-rw-r--r--keyboards/work_louder/rgb_functions.h82
-rw-r--r--keyboards/work_louder/work_board/config.h2
-rw-r--r--keyboards/work_louder/work_board/info.json56
-rw-r--r--keyboards/work_louder/work_board/keymaps/via/config.h4
-rw-r--r--keyboards/work_louder/work_board/keymaps/via/keymap.c18
-rw-r--r--keyboards/work_louder/work_board/work_board.c34
-rw-r--r--keyboards/wsk/g4m3ralpha/g4m3ralpha.c39
-rw-r--r--keyboards/wsk/g4m3ralpha/keyboard.json5
-rw-r--r--keyboards/wuque/ikki68/ikki68.c30
-rw-r--r--keyboards/wuque/ikki68/keyboard.json4
-rw-r--r--keyboards/xelus/pachi/rgb/rev1/keymaps/via/config.h (renamed from keyboards/xelus/pachi/rgb/keymaps/via/config.h)0
-rw-r--r--keyboards/xelus/pachi/rgb/rev1/keymaps/via/keymap.c (renamed from keyboards/xelus/pachi/rgb/keymaps/via/keymap.c)0
-rw-r--r--keyboards/xelus/pachi/rgb/rev1/keymaps/via/rules.mk (renamed from keyboards/xelus/pachi/rgb/keymaps/via/rules.mk)0
-rw-r--r--keyboards/xelus/pachi/rgb/rev2/config.h4
-rw-r--r--keyboards/xelus/pachi/rgb/rev2/keymaps/via/config.h (renamed from keyboards/bastardkb/tbk/config.h)6
-rw-r--r--keyboards/xelus/pachi/rgb/rev2/keymaps/via/keymap.c399
-rw-r--r--keyboards/xelus/pachi/rgb/rev2/keymaps/via/rules.mk1
-rw-r--r--keyboards/xelus/pachi/rgb/rev2/rev2.c309
-rw-r--r--keyboards/xelus/pachi/rgb/rev2/rev2.h72
-rw-r--r--keyboards/yandrstudio/nz64/nz64.c8
-rw-r--r--keyboards/yandrstudio/nz67v2/nz67v2.c4
-rw-r--r--keyboards/yiancardesigns/barleycorn/barleycorn.c37
-rw-r--r--keyboards/yiancardesigns/barleycorn/keyboard.json4
-rw-r--r--keyboards/ymdk/yd60mq/info.json4
-rw-r--r--keyboards/ymdk/yd60mq/yd60mq.c21
-rw-r--r--keyboards/yushakobo/navpad/navpad_prefs.c4
328 files changed, 2765 insertions, 4337 deletions
diff --git a/keyboards/40percentclub/ut47/ut47.c b/keyboards/40percentclub/ut47/ut47.c
index d5675e1047..867d8c0202 100644
--- a/keyboards/40percentclub/ut47/ut47.c
+++ b/keyboards/40percentclub/ut47/ut47.c
@@ -19,6 +19,8 @@
void matrix_init_kb(void) {
uart_init(9600);
+
+ matrix_init_user();
}
#endif
diff --git a/keyboards/acheron/athena/alpha/alpha.c b/keyboards/acheron/athena/alpha/alpha.c
index 8fe47eff82..4dea24b93d 100644
--- a/keyboards/acheron/athena/alpha/alpha.c
+++ b/keyboards/acheron/athena/alpha/alpha.c
@@ -24,6 +24,8 @@ void board_init(void) {
void keyboard_post_init_kb(void){
// Defining the backlight pin (A6) as an floating (no pullup or pulldown resistor) opendrain output pin
palSetLineMode(BACKLIGHT_PIN, PAL_MODE_ALTERNATE(2) | PAL_STM32_OTYPE_OPENDRAIN | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_FLOATING);
+
+ keyboard_post_init_user();
}
void led_init_ports(void) {
diff --git a/keyboards/acheron/austin/austin.c b/keyboards/acheron/austin/austin.c
deleted file mode 100644
index 9a69d1c086..0000000000
--- a/keyboards/acheron/austin/austin.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(A0);
- gpio_set_pin_output(A1);
- gpio_set_pin_output(A2);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if (led_update_user(led_state)) {
- gpio_write_pin(A2, led_state.num_lock);
- gpio_write_pin(A0, led_state.caps_lock);
- gpio_write_pin(A1, led_state.scroll_lock);
- }
- return true;
-}
diff --git a/keyboards/acheron/austin/keyboard.json b/keyboards/acheron/austin/keyboard.json
index bee675472c..a3df5dd75d 100755
--- a/keyboards/acheron/austin/keyboard.json
+++ b/keyboards/acheron/austin/keyboard.json
@@ -33,6 +33,11 @@
"levels": 6,
"breathing": true
},
+ "indicators": {
+ "caps_lock": "A0",
+ "num_lock": "A2",
+ "scroll_lock": "A1"
+ },
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"layouts": {
diff --git a/keyboards/acheron/elongate/delta/delta.c b/keyboards/acheron/elongate/delta/delta.c
index 98b60bae61..839151521a 100755
--- a/keyboards/acheron/elongate/delta/delta.c
+++ b/keyboards/acheron/elongate/delta/delta.c
@@ -74,4 +74,6 @@ layer_state_t layer_state_set_kb(layer_state_t state) {
// Since the keyboard starts at layer 0, the init function starts LED4 as lit up.
void keyboard_post_init_kb(void){
gpio_write_pin(LED4_PIN, 0);
+
+ keyboard_post_init_user();
}
diff --git a/keyboards/aeboards/ext65/rev1/keyboard.json b/keyboards/aeboards/ext65/rev1/keyboard.json
index c254a67142..1d105505e5 100644
--- a/keyboards/aeboards/ext65/rev1/keyboard.json
+++ b/keyboards/aeboards/ext65/rev1/keyboard.json
@@ -13,6 +13,11 @@
"extrakey": true,
"nkro": true
},
+ "indicators": {
+ "caps_lock": "D3",
+ "num_lock": "D5",
+ "scroll_lock": "D2"
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"diode_direction": "COL2ROW",
diff --git a/keyboards/aeboards/ext65/rev1/rev1.c b/keyboards/aeboards/ext65/rev1/rev1.c
index 344a2bcb32..fc8280a5e4 100644
--- a/keyboards/aeboards/ext65/rev1/rev1.c
+++ b/keyboards/aeboards/ext65/rev1/rev1.c
@@ -16,23 +16,10 @@
#include "quantum.h"
-void keyboard_pre_init_user(void) {
- // Call the keyboard pre init code.
- // Set our LED pins as output
- gpio_set_pin_output(D5);
- gpio_set_pin_output(D3);
- gpio_set_pin_output(D2);
- gpio_set_pin_output(D1);
-}
+void keyboard_pre_init_kb(void) {
+ gpio_set_pin_output(D1);
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(D5, led_state.num_lock);
- gpio_write_pin(D3, led_state.caps_lock);
- gpio_write_pin(D2, led_state.scroll_lock);
- }
- return res;
+ keyboard_pre_init_user();
}
layer_state_t layer_state_set_kb(layer_state_t state) {
diff --git a/keyboards/aeboards/ext65/rev2/keyboard.json b/keyboards/aeboards/ext65/rev2/keyboard.json
index 0ab50f9258..ab7cceeefb 100644
--- a/keyboards/aeboards/ext65/rev2/keyboard.json
+++ b/keyboards/aeboards/ext65/rev2/keyboard.json
@@ -22,6 +22,11 @@
"levels": 6,
"breathing": true
},
+ "indicators": {
+ "caps_lock": "B3",
+ "num_lock": "B4",
+ "scroll_lock": "A15"
+ },
"rgblight": {
"led_count": 24,
"animations": {
diff --git a/keyboards/aeboards/ext65/rev2/rev2.c b/keyboards/aeboards/ext65/rev2/rev2.c
index 5922b601cd..7b8ebb0087 100644
--- a/keyboards/aeboards/ext65/rev2/rev2.c
+++ b/keyboards/aeboards/ext65/rev2/rev2.c
@@ -69,26 +69,11 @@ bool oled_task_kb(void) {
#else
void keyboard_pre_init_kb(void) {
- // Call the keyboard pre init code.
- // Set our LED pins as output
- gpio_set_pin_output(B4);
- gpio_set_pin_output(B3);
- gpio_set_pin_output(A15);
gpio_set_pin_output(A14);
keyboard_pre_init_user();
}
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if (res) {
- gpio_write_pin(B4, led_state.num_lock);
- gpio_write_pin(B3, led_state.caps_lock);
- gpio_write_pin(A15, led_state.scroll_lock);
- }
- return res;
-}
-
layer_state_t layer_state_set_kb(layer_state_t state) {
switch (get_highest_layer(state)) {
case 1:
diff --git a/keyboards/aeboards/ext65/rev3/rev3.c b/keyboards/aeboards/ext65/rev3/rev3.c
index f8fc2ef502..7b0f2018c2 100644
--- a/keyboards/aeboards/ext65/rev3/rev3.c
+++ b/keyboards/aeboards/ext65/rev3/rev3.c
@@ -19,10 +19,12 @@
// Tested and verified working on EXT65 Rev3
void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); }
-void keyboard_pre_init_user(void) {
+void keyboard_pre_init_kb(void) {
// Call the keyboard pre init code.
// Set our LED pins as output
gpio_set_pin_output(LED_LAYERS_PIN);
+
+ keyboard_pre_init_user();
}
layer_state_t layer_state_set_kb(layer_state_t state) {
diff --git a/keyboards/ai03/vega/keyboard.json b/keyboards/ai03/vega/keyboard.json
index a58fa4fcae..bc220cc7a1 100644
--- a/keyboards/ai03/vega/keyboard.json
+++ b/keyboards/ai03/vega/keyboard.json
@@ -22,6 +22,11 @@
"resync": true
}
},
+ "indicators": {
+ "caps_lock": "B7",
+ "scroll_lock": "A5",
+ "on_state": 0
+ },
"matrix_pins": {
"cols": ["B5", "A3", "A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0", "A7", "A6"],
"rows": ["A1", "A2", "B3", "A15", "A10"]
diff --git a/keyboards/ai03/vega/vega.c b/keyboards/ai03/vega/vega.c
deleted file mode 100644
index 44ded2c85c..0000000000
--- a/keyboards/ai03/vega/vega.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2020 ai03
- *
- * 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 "quantum.h"
-
-void matrix_init_kb(void) {
- // Initialize indicator LEDs to output
-
- gpio_set_pin_output(B7); // Caps
- gpio_set_pin_output(A5); // Slck
-
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
-
- bool res = led_update_user(led_state);
-
- if(res) {
- gpio_write_pin(B7, !led_state.caps_lock);
- gpio_write_pin(A5, !led_state.scroll_lock);
- }
- return res;
-} \ No newline at end of file
diff --git a/keyboards/atreus/astar_mirrored/config.h b/keyboards/atreus/astar_mirrored/config.h
deleted file mode 100644
index 3bd163dec3..0000000000
--- a/keyboards/atreus/astar_mirrored/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2019
- *
- * 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
-
-#define PCBDOWN 1
diff --git a/keyboards/atreus/atreus.h b/keyboards/atreus/atreus.h
deleted file mode 100644
index 2a966b8641..0000000000
--- a/keyboards/atreus/atreus.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2019
- *
- * 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 "quantum.h"
-#define ___ KC_NO
-
-// This a shortcut to help you visually see your layout.
-// The first section contains all of the arguments.
-// The second converts the arguments into a two-dimensional array.
-// In the PCBDOWN case we need to swap the middle two keys: k35 and k36.
-#if defined(PCBDOWN)
-#define LAYOUT( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
-) \
-{ \
- { k00, k01, k02, k03, k04, KC_NO, k05, k06, k07, k08, k09 }, \
- { k10, k11, k12, k13, k14, KC_NO, k15, k16, k17, k18, k19 }, \
- { k20, k21, k22, k23, k24, k36, k25, k26, k27, k28, k29 }, \
- { k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b } \
-}
-#else
-#define LAYOUT( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
-) \
-{ \
- { k00, k01, k02, k03, k04, ___, k05, k06, k07, k08, k09 }, \
- { k10, k11, k12, k13, k14, ___, k15, k16, k17, k18, k19 }, \
- { k20, k21, k22, k23, k24, k35, k25, k26, k27, k28, k29 }, \
- { k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a, k3b } \
-}
-#endif
diff --git a/keyboards/atreus/feather/config.h b/keyboards/atreus/feather/config.h
deleted file mode 100644
index 505296a505..0000000000
--- a/keyboards/atreus/feather/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2019
- *
- * 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
-
-#define OUTPUT_AUTO_ENABLE
diff --git a/keyboards/atreus/info.json b/keyboards/atreus/info.json
index a0f592105f..1a33591ab5 100644
--- a/keyboards/atreus/info.json
+++ b/keyboards/atreus/info.json
@@ -23,58 +23,114 @@
"resync": true
}
},
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_pcb_up"
+ },
"layouts": {
- "LAYOUT": {
+ "LAYOUT_pcb_up": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0.6},
+ {"matrix": [0, 1], "x": 1, "y": 0.35},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0.35},
+ {"matrix": [0, 4], "x": 4, "y": 0.7},
+
+ {"matrix": [0, 6], "x": 8, "y": 0.7},
+ {"matrix": [0, 7], "x": 9, "y": 0.35},
+ {"matrix": [0, 8], "x": 10, "y": 0},
+ {"matrix": [0, 9], "x": 11, "y": 0.35},
+ {"matrix": [0, 10], "x": 12, "y": 0.6},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.6},
+ {"matrix": [1, 1], "x": 1, "y": 1.35},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1.35},
+ {"matrix": [1, 4], "x": 4, "y": 1.7},
+
+ {"matrix": [1, 6], "x": 8, "y": 1.7},
+ {"matrix": [1, 7], "x": 9, "y": 1.35},
+ {"matrix": [1, 8], "x": 10, "y": 1},
+ {"matrix": [1, 9], "x": 11, "y": 1.35},
+ {"matrix": [1, 10], "x": 12, "y": 1.6},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.6},
+ {"matrix": [2, 1], "x": 1, "y": 2.35},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [2, 3], "x": 3, "y": 2.35},
+ {"matrix": [2, 4], "x": 4, "y": 2.7},
+
+ {"matrix": [2, 6], "x": 8, "y": 2.7},
+ {"matrix": [2, 7], "x": 9, "y": 2.35},
+ {"matrix": [2, 8], "x": 10, "y": 2},
+ {"matrix": [2, 9], "x": 11, "y": 2.35},
+ {"matrix": [2, 10], "x": 12, "y": 2.6},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.6},
+ {"matrix": [3, 1], "x": 1, "y": 3.35},
+ {"matrix": [3, 2], "x": 2, "y": 3},
+ {"matrix": [3, 3], "x": 3, "y": 3.35},
+ {"matrix": [3, 4], "x": 4, "y": 3.7},
+ {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5},
+
+ {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5},
+ {"matrix": [3, 6], "x": 8, "y": 3.7},
+ {"matrix": [3, 7], "x": 9, "y": 3.35},
+ {"matrix": [3, 8], "x": 10, "y": 3},
+ {"matrix": [3, 9], "x": 11, "y": 3.35},
+ {"matrix": [3, 10], "x": 12, "y": 3.6}
+ ]
+ },
+ "LAYOUT_pcb_down": {
"layout": [
- {"x": 0, "y": 0.6},
- {"x": 1, "y": 0.35},
- {"x": 2, "y": 0},
- {"x": 3, "y": 0.35},
- {"x": 4, "y": 0.7},
+ {"matrix": [0, 0], "x": 0, "y": 0.6},
+ {"matrix": [0, 1], "x": 1, "y": 0.35},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0.35},
+ {"matrix": [0, 4], "x": 4, "y": 0.7},
- {"x": 8, "y": 0.7},
- {"x": 9, "y": 0.35},
- {"x": 10, "y": 0},
- {"x": 11, "y": 0.35},
- {"x": 12, "y": 0.6},
+ {"matrix": [0, 6], "x": 8, "y": 0.7},
+ {"matrix": [0, 7], "x": 9, "y": 0.35},
+ {"matrix": [0, 8], "x": 10, "y": 0},
+ {"matrix": [0, 9], "x": 11, "y": 0.35},
+ {"matrix": [0, 10], "x": 12, "y": 0.6},
- {"x": 0, "y": 1.6},
- {"x": 1, "y": 1.35},
- {"x": 2, "y": 1},
- {"x": 3, "y": 1.35},
- {"x": 4, "y": 1.7},
+ {"matrix": [1, 0], "x": 0, "y": 1.6},
+ {"matrix": [1, 1], "x": 1, "y": 1.35},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1.35},
+ {"matrix": [1, 4], "x": 4, "y": 1.7},
- {"x": 8, "y": 1.7},
- {"x": 9, "y": 1.35},
- {"x": 10, "y": 1},
- {"x": 11, "y": 1.35},
- {"x": 12, "y": 1.6},
+ {"matrix": [1, 6], "x": 8, "y": 1.7},
+ {"matrix": [1, 7], "x": 9, "y": 1.35},
+ {"matrix": [1, 8], "x": 10, "y": 1},
+ {"matrix": [1, 9], "x": 11, "y": 1.35},
+ {"matrix": [1, 10], "x": 12, "y": 1.6},
- {"x": 0, "y": 2.6},
- {"x": 1, "y": 2.35},
- {"x": 2, "y": 2},
- {"x": 3, "y": 2.35},
- {"x": 4, "y": 2.7},
+ {"matrix": [2, 0], "x": 0, "y": 2.6},
+ {"matrix": [2, 1], "x": 1, "y": 2.35},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [2, 3], "x": 3, "y": 2.35},
+ {"matrix": [2, 4], "x": 4, "y": 2.7},
- {"x": 8, "y": 2.7},
- {"x": 9, "y": 2.35},
- {"x": 10, "y": 2},
- {"x": 11, "y": 2.35},
- {"x": 12, "y": 2.6},
+ {"matrix": [2, 6], "x": 8, "y": 2.7},
+ {"matrix": [2, 7], "x": 9, "y": 2.35},
+ {"matrix": [2, 8], "x": 10, "y": 2},
+ {"matrix": [2, 9], "x": 11, "y": 2.35},
+ {"matrix": [2, 10], "x": 12, "y": 2.6},
- {"x": 0, "y": 3.6},
- {"x": 1, "y": 3.35},
- {"x": 2, "y": 3},
- {"x": 3, "y": 3.35},
- {"x": 4, "y": 3.7},
- {"x": 5, "y": 2.95, "h": 1.5},
+ {"matrix": [3, 0], "x": 0, "y": 3.6},
+ {"matrix": [3, 1], "x": 1, "y": 3.35},
+ {"matrix": [3, 2], "x": 2, "y": 3},
+ {"matrix": [3, 3], "x": 3, "y": 3.35},
+ {"matrix": [3, 4], "x": 4, "y": 3.7},
+ {"matrix": [3, 5], "x": 5, "y": 2.95, "h": 1.5},
- {"x": 7, "y": 2.95, "h": 1.5},
- {"x": 8, "y": 3.7},
- {"x": 9, "y": 3.35},
- {"x": 10, "y": 3},
- {"x": 11, "y": 3.35},
- {"x": 12, "y": 3.6}
+ {"matrix": [2, 5], "x": 7, "y": 2.95, "h": 1.5},
+ {"matrix": [3, 6], "x": 8, "y": 3.7},
+ {"matrix": [3, 7], "x": 9, "y": 3.35},
+ {"matrix": [3, 8], "x": 10, "y": 3},
+ {"matrix": [3, 9], "x": 11, "y": 3.35},
+ {"matrix": [3, 10], "x": 12, "y": 3.6}
]
}
}
diff --git a/keyboards/atreus/keymaps/default/keymap.c b/keyboards/atreus/keymaps/default/keymap.c
index ca1333230c..e458810537 100644
--- a/keyboards/atreus/keymaps/default/keymap.c
+++ b/keyboards/atreus/keymaps/default/keymap.c
@@ -12,7 +12,7 @@
#define _LW 2
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = LAYOUT( /* Qwerty */
+ [_QW] = LAYOUT_pcb_up( /* Qwerty */
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P ,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN ,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH ,
@@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* [ ] ( ) & || ` 1 2 3 \
* lower insert super shift bksp ctrl || alt space fn . 0 =
*/
- [_RS] = LAYOUT( /* [> RAISE <] */
+ [_RS] = LAYOUT_pcb_up( /* [> RAISE <] */
KC_EXLM, KC_AT, KC_UP, KC_LCBR, KC_RCBR, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR ,
KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DLR, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS ,
KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_GRV, KC_1, KC_2, KC_3, KC_BSLS ,
@@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* volup reset || F1 F2 F3 F12
* voldn super shift bksp ctrl || alt space L0 prtsc scroll pause
*/
- [_LW] = LAYOUT( /* [> LOWER <] */
+ [_LW] = LAYOUT_pcb_up( /* [> LOWER <] */
KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10 ,
KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11 ,
KC_NO, KC_VOLU, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_F1, KC_F2, KC_F3, KC_F12 ,
diff --git a/keyboards/atreus/keymaps/via/keymap.c b/keyboards/atreus/keymaps/via/keymap.c
index 52740c5bad..e6093d7ac1 100644
--- a/keyboards/atreus/keymaps/via/keymap.c
+++ b/keyboards/atreus/keymaps/via/keymap.c
@@ -27,7 +27,7 @@ enum custom_layers {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = LAYOUT( /* Qwerty */
+ [_QW] = LAYOUT_pcb_up( /* Qwerty */
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P ,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN ,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH ,
@@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* [ ] ( ) & || ` 1 2 3 \
* lower insert super shift bksp ctrl || alt space fn . 0 =
*/
- [_RS] = LAYOUT( /* [> RAISE <] */
+ [_RS] = LAYOUT_pcb_up( /* [> RAISE <] */
KC_EXLM, KC_AT, KC_UP, KC_LCBR, KC_RCBR, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR ,
KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DLR, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS ,
KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_GRV, KC_1, KC_2, KC_3, KC_BSLS ,
@@ -51,13 +51,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* volup reset || F1 F2 F3 F12
* voldn super shift bksp ctrl || alt space L0 prtsc scroll pause
*/
- [_LW] = LAYOUT( /* [> LOWER <] */
+ [_LW] = LAYOUT_pcb_up( /* [> LOWER <] */
KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10 ,
KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11 ,
KC_NO, KC_VOLU, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_F1, KC_F2, KC_F3, KC_F12 ,
KC_NO, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, TO(_QW), KC_PSCR, KC_SCRL, KC_PAUS ),
- [_EM] = LAYOUT( /* [> EMPTY <] */
+ [_EM] = LAYOUT_pcb_up( /* [> EMPTY <] */
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 ,
diff --git a/keyboards/atreus/keymaps/workman/config.h b/keyboards/atreus/keymaps/workman/config.h
index cf0b5e2ac5..f75e442456 100644
--- a/keyboards/atreus/keymaps/workman/config.h
+++ b/keyboards/atreus/keymaps/workman/config.h
@@ -1,3 +1,2 @@
#define TAPPING_TOGGLE 1
#define ONESHOT_TAP_TOGGLE 1
-#define PCBDOWN 1
diff --git a/keyboards/atreus/keymaps/workman/keymap.c b/keyboards/atreus/keymaps/workman/keymap.c
index c0633f6362..e8b5b6b4e3 100644
--- a/keyboards/atreus/keymaps/workman/keymap.c
+++ b/keyboards/atreus/keymaps/workman/keymap.c
@@ -25,7 +25,7 @@ enum custom_keycodes {
*/
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = LAYOUT( /* Workman */
+ [_QW] = LAYOUT_pcb_down( /* Workman */
KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN,
KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I,
KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH,
@@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* menu caps < > del || _ 0 =
*/
- [_RS] = LAYOUT( /* [> RAISE <] */
+ [_RS] = LAYOUT_pcb_down( /* [> RAISE <] */
KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_MINS, KC_7, KC_8, KC_9, KC_ASTR,
KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_DOT, KC_4, KC_5, KC_6, KC_PLUS,
KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS,
@@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* || – ¨ reset
*/
- [_LW] = LAYOUT( /* [> LOWER <] */
+ [_LW] = LAYOUT_pcb_down( /* [> LOWER <] */
KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_VOLU, KC_F7, KC_F8, KC_F9, KC_F10,
KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_VOLD, KC_F4, KC_F5, KC_F6, KC_F11,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F12,
diff --git a/keyboards/atreus/promicro/keyboard.json b/keyboards/atreus/promicro/keyboard.json
index e614b4e2a0..10c0ca1b22 100644
--- a/keyboards/atreus/promicro/keyboard.json
+++ b/keyboards/atreus/promicro/keyboard.json
@@ -4,6 +4,5 @@
"rows": ["F4", "B2", "B4", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/bastardkb/tbk/keyboard.json b/keyboards/bastardkb/tbk/keyboard.json
deleted file mode 100644
index 90e37478a1..0000000000
--- a/keyboards/bastardkb/tbk/keyboard.json
+++ /dev/null
@@ -1,111 +0,0 @@
-{
- "keyboard_name": "The Bastard Keyboard",
- "url": "https://bastardkb.com/",
- "usb": {
- "device_version": "0.0.1",
- "pid": "0x1828"
- },
- "rgblight": {
- "led_count": 38,
- "split_count": [19, 19],
- "animations": {
- "breathing": true,
- "rainbow_mood": true,
- "rainbow_swirl": true,
- "snake": true,
- "knight": true,
- "christmas": true,
- "static_gradient": true,
- "rgb_test": true,
- "alternating": true,
- "twinkle": true
- }
- },
- "ws2812": {
- "pin": "D2"
- },
- "features": {
- "bootmagic": true,
- "command": false,
- "console": false,
- "extrakey": true,
- "mousekey": true,
- "nkro": false,
- "rgblight": true
- },
- "matrix_pins": {
- "cols": ["B4", "E6", "C6", "B1", "B3", "B2"],
- "rows": ["D7", "B5", "F7", "F6", "B6"]
- },
- "diode_direction": "ROW2COL",
- "split": {
- "enabled": true,
- "soft_serial_pin": "D0"
- },
- "processor": "atmega32u4",
- "bootloader": "atmel-dfu",
- "layouts": {
- "LAYOUT_split_4x6_5": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0},
- {"matrix": [0, 1], "x": 1, "y": 0},
- {"matrix": [0, 2], "x": 2, "y": 0},
- {"matrix": [0, 3], "x": 3, "y": 0},
- {"matrix": [0, 4], "x": 4, "y": 0},
- {"matrix": [0, 5], "x": 5, "y": 0},
- {"matrix": [5, 5], "x": 11, "y": 0},
- {"matrix": [5, 4], "x": 12, "y": 0},
- {"matrix": [5, 3], "x": 13, "y": 0},
- {"matrix": [5, 2], "x": 14, "y": 0},
- {"matrix": [5, 1], "x": 15, "y": 0},
- {"matrix": [5, 0], "x": 16, "y": 0},
- {"matrix": [1, 0], "x": 0, "y": 1},
- {"matrix": [1, 1], "x": 1, "y": 1},
- {"matrix": [1, 2], "x": 2, "y": 1},
- {"matrix": [1, 3], "x": 3, "y": 1},
- {"matrix": [1, 4], "x": 4, "y": 1},
- {"matrix": [1, 5], "x": 5, "y": 1},
- {"matrix": [6, 5], "x": 11, "y": 1},
- {"matrix": [6, 4], "x": 12, "y": 1},
- {"matrix": [6, 3], "x": 13, "y": 1},
- {"matrix": [6, 2], "x": 14, "y": 1},
- {"matrix": [6, 1], "x": 15, "y": 1},
- {"matrix": [6, 0], "x": 16, "y": 1},
- {"matrix": [2, 0], "x": 0, "y": 2},
- {"matrix": [2, 1], "x": 1, "y": 2},
- {"matrix": [2, 2], "x": 2, "y": 2},
- {"matrix": [2, 3], "x": 3, "y": 2},
- {"matrix": [2, 4], "x": 4, "y": 2},
- {"matrix": [2, 5], "x": 5, "y": 2},
- {"matrix": [7, 5], "x": 11, "y": 2},
- {"matrix": [7, 4], "x": 12, "y": 2},
- {"matrix": [7, 3], "x": 13, "y": 2},
- {"matrix": [7, 2], "x": 14, "y": 2},
- {"matrix": [7, 1], "x": 15, "y": 2},
- {"matrix": [7, 0], "x": 16, "y": 2},
- {"matrix": [3, 0], "x": 0, "y": 3},
- {"matrix": [3, 1], "x": 1, "y": 3},
- {"matrix": [3, 2], "x": 2, "y": 3},
- {"matrix": [3, 3], "x": 3, "y": 3},
- {"matrix": [3, 4], "x": 4, "y": 3},
- {"matrix": [3, 5], "x": 5, "y": 3},
- {"matrix": [8, 5], "x": 11, "y": 3},
- {"matrix": [8, 4], "x": 12, "y": 3},
- {"matrix": [8, 3], "x": 13, "y": 3},
- {"matrix": [8, 2], "x": 14, "y": 3},
- {"matrix": [8, 1], "x": 15, "y": 3},
- {"matrix": [8, 0], "x": 16, "y": 3},
- {"matrix": [4, 3], "x": 5, "y": 4},
- {"matrix": [4, 4], "x": 6, "y": 4},
- {"matrix": [4, 1], "x": 7, "y": 4},
- {"matrix": [9, 1], "x": 9, "y": 4},
- {"matrix": [9, 4], "x": 10, "y": 4},
- {"matrix": [9, 3], "x": 11, "y": 4},
- {"matrix": [4, 5], "x": 6, "y": 5},
- {"matrix": [4, 2], "x": 7, "y": 5},
- {"matrix": [9, 2], "x": 9, "y": 5},
- {"matrix": [9, 5], "x": 10, "y": 5}
- ]
- }
- }
-}
diff --git a/keyboards/bastardkb/tbk/keymaps/default/keymap.c b/keyboards/bastardkb/tbk/keymaps/default/keymap.c
deleted file mode 100644
index 3227076c07..0000000000
--- a/keyboards/bastardkb/tbk/keymaps/default/keymap.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2021 Quentin LEBASTARD <[email protected]>
- *
- * 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
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [0] = LAYOUT_split_4x6_5(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
-//-------------------------------------------------//-----------------------------------------------------------//
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
-//-------------------------------------------------//-----------------------------------------------------------//
- KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
-//-------------------------------------------------//-----------------------------------------------------------//
- KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS,
-//-------------------------------------------------//-----------------------------------------------------------//
- KC_LCTL, KC_SPC, MO(1), MO(2), KC_ENT, KC_RGUI,
- KC_HOME, KC_BSPC, KC_DEL, KC_RALT
- ),
-
- [1] = LAYOUT_split_4x6_5(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
-//---------------------------------------------------------//-----------------------------------------------------------//
- QK_BOOT, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, _______, KC_PLUS,
-//---------------------------------------------------------//-----------------------------------------------------------//
- _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_LPRN, KC_RPRN, KC_P4, KC_P5, KC_P6, KC_MINS, KC_PIPE,
-//---------------------------------------------------------//-----------------------------------------------------------//
- _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_EQL, KC_UNDS,
-//---------------------------------------------------------//-----------------------------------------------------------//
- KC_LCTL, KC_HOME, KC_TRNS, KC_TRNS, KC_RALT, KC_RGUI,
- KC_SPC, KC_BSPC, KC_RCTL, KC_ENT
- ),
-
- [2] = LAYOUT_split_4x6_5(
- KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
-//---------------------------------------------------------//--------------------------------------------------------------//
- _______, _______, RGB_RMOD, RGB_TOG, RGB_MOD, KC_LBRC, KC_RBRC, _______, KC_NUM, KC_INS, KC_SCRL, KC_MUTE,
-//---------------------------------------------------------//--------------------------------------------------------------//
- _______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_LPRN, KC_RPRN, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_VOLU,
-//---------------------------------------------------------//--------------------------------------------------------------//
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD,
-//---------------------------------------------------------//--------------------------------------------------------------//
- KC_LCTL, KC_HOME, KC_TRNS, KC_TRNS, KC_RALT, QK_BOOT,
- KC_SPC, KC_BSPC, KC_RCTL, KC_ENT
- ),
-};
diff --git a/keyboards/bastardkb/tbk/readme.md b/keyboards/bastardkb/tbk/readme.md
deleted file mode 100644
index 0d552e5caf..0000000000
--- a/keyboards/bastardkb/tbk/readme.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# The Bastard Keyboard
-
-A split ergonomic keyboard.
-
-* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/)
-* Hardware Supported: elite-C V4
-* Hardware Availability: [Bastard Keyboards](https://bastardkb.com/)
-
-Make example for this keyboard (after setting up your build environment):
-
- make bastardkb/tbk:default
-
-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 [keyboard build instructions](https://docs.bastardkb.com)
-
-
-## Important information regarding the reset
-
-If you modify this firmware, make sure to always have a QK_BOOT key that can be triggered using only the master side ! This way you ensure that you can always flash the keyboard, even if you mess up.
-
-Otherwise if you're stuck, open the case and reset manually by shorting Gnd and Rst, or pressing the RST button.
diff --git a/keyboards/bear_face/info.json b/keyboards/bear_face/info.json
index ad12468d56..90191299d8 100644
--- a/keyboards/bear_face/info.json
+++ b/keyboards/bear_face/info.json
@@ -1,22 +1,18 @@
{
- "keyboard_name": "bear_face",
- "manufacturer": "chemicalwill",
- "url": "https://github.com/chemicalwill/bear_face_pcb",
- "maintainer": "chemicalwill",
- "debounce": 6,
+ "manufacturer": "will-hedges",
+ "url": "https://github.com/will-hedges",
+ "maintainer": "will-hedges",
"usb": {
"vid": "0xFEED",
- "pid": "0x09F5",
- "force_nkro": true
+ "pid": "0x09F5"
},
"features": {
"backlight": true,
- "bootmagic": false,
+ "bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
- "mousekey": false,
- "nkro": true
+ "mousekey": false
},
"qmk": {
"locking": {
@@ -30,7 +26,8 @@
},
"diode_direction": "COL2ROW",
"backlight": {
- "driver": "timer",
+ "as_caps_lock": true,
+ "driver": "software",
"pin": "F7"
},
"processor": "atmega32u4",
diff --git a/keyboards/bear_face/rules.mk b/keyboards/bear_face/rules.mk
deleted file mode 100644
index f11303978e..0000000000
--- a/keyboards/bear_face/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = bear_face/v1
diff --git a/keyboards/bear_face/v1/keyboard.json b/keyboards/bear_face/v1/keyboard.json
index 8dedc0b1c7..8c60089bbb 100644
--- a/keyboards/bear_face/v1/keyboard.json
+++ b/keyboards/bear_face/v1/keyboard.json
@@ -1,9 +1,13 @@
{
+ "keyboard_name": "bear_face v1",
"usb": {
"device_version": "1.0.0"
},
+ "backlight": {
+ "on_state": 0
+ },
"layouts": {
- "LAYOUT_83_ansi": {
+ "LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
{"matrix": [0, 1], "x": 1.5, "y": 0},
diff --git a/keyboards/bear_face/v1/keymaps/default/keymap.c b/keyboards/bear_face/v1/keymaps/default/keymap.c
index fc92c783db..e615a3915d 100644
--- a/keyboards/bear_face/v1/keymaps/default/keymap.c
+++ b/keyboards/bear_face/v1/keymaps/default/keymap.c
@@ -1,19 +1,5 @@
-/*
-Copyright 2020 chemicalwill <https://github.com/chemicalwill>
-
-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/>.
-*/
+/* Copyright 2024 will-hedges */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#include QMK_KEYBOARD_H
@@ -28,13 +14,13 @@ enum layers {
//custom keycode enums
enum custom_keycodes {
- BASE_QWER = SAFE_RANGE,
+ BASE_QWER = QK_USER,
BASE_COLE,
BASE_DVOR
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWER] = LAYOUT_83_ansi(
+ [_QWER] = LAYOUT(
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_NO, KC_DEL,
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_BSLS, KC_PGUP,
@@ -43,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [_COLE] = LAYOUT_83_ansi(
+ [_COLE] = LAYOUT(
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_NO, KC_DEL,
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_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
@@ -52,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [_DVOR] = LAYOUT_83_ansi(
+ [_DVOR] = LAYOUT(
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_NO, KC_DEL,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME,
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_PGUP,
@@ -61,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [_FN1] = LAYOUT_83_ansi(
+ [_FN1] = LAYOUT(
_______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, KC_INS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_CALC, BASE_QWER,
_______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, BASE_COLE,
@@ -71,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
/*
- [_BLANK] = LAYOUT_83_ansi(
+ [_BLANK] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -82,8 +68,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
};
-//macros to allow the user to set whatever default layer they want, even after reboot
+// macros to allow the user to set whatever default layer they want, even after reboot
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case BASE_QWER:
diff --git a/keyboards/bear_face/v1/v1.c b/keyboards/bear_face/v1/v1.c
deleted file mode 100644
index b64a63f0b4..0000000000
--- a/keyboards/bear_face/v1/v1.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright 2020 chemicalwill <https://github.com/chemicalwill>
-
-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 "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- //Sets LED pin as output
- gpio_set_pin_output(F7);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- // Caps Lock LED indicator toggling code here
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(F7, led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/bear_face/v2/keyboard.json b/keyboards/bear_face/v2/keyboard.json
index 908165babb..456c920066 100644
--- a/keyboards/bear_face/v2/keyboard.json
+++ b/keyboards/bear_face/v2/keyboard.json
@@ -1,8 +1,106 @@
{
+ "keyboard_name": "bear_face v2",
"usb": {
- "device_version": "2.0.0"
+ "device_version": "2.1.0"
+ },
+ "backlight": {
+ "on_state": 0
},
"layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+ {"matrix": [0, 1], "x": 1.5, "y": 0},
+ {"matrix": [0, 2], "x": 2.5, "y": 0},
+ {"matrix": [0, 3], "x": 3.5, "y": 0},
+ {"matrix": [0, 4], "x": 4.5, "y": 0},
+ {"matrix": [0, 5], "x": 5.5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.5, "y": 0},
+ {"matrix": [0, 10], "x": 10.5, "y": 0},
+ {"matrix": [0, 11], "x": 11.5, "y": 0},
+ {"matrix": [0, 12], "x": 12.5, "y": 0},
+ {"matrix": [0, 13], "x": 13.5, "y": 0},
+ {"matrix": [0, 14], "x": 14.5, "y": 0, "w": 1.5},
+
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1},
+ {"matrix": [1, 5], "x": 5, "y": 1},
+ {"matrix": [1, 6], "x": 6, "y": 1},
+ {"matrix": [1, 7], "x": 7, "y": 1},
+ {"matrix": [1, 8], "x": 8, "y": 1},
+ {"matrix": [1, 9], "x": 9, "y": 1},
+ {"matrix": [1, 10], "x": 10, "y": 1},
+ {"matrix": [1, 11], "x": 11, "y": 1},
+ {"matrix": [1, 12], "x": 12, "y": 1},
+ {"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
+ {"matrix": [1, 14], "x": 15, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2},
+ {"matrix": [2, 2], "x": 2.5, "y": 2},
+ {"matrix": [2, 3], "x": 3.5, "y": 2},
+ {"matrix": [2, 4], "x": 4.5, "y": 2},
+ {"matrix": [2, 5], "x": 5.5, "y": 2},
+ {"matrix": [2, 6], "x": 6.5, "y": 2},
+ {"matrix": [2, 7], "x": 7.5, "y": 2},
+ {"matrix": [2, 8], "x": 8.5, "y": 2},
+ {"matrix": [2, 9], "x": 9.5, "y": 2},
+ {"matrix": [2, 10], "x": 10.5, "y": 2},
+ {"matrix": [2, 11], "x": 11.5, "y": 2},
+ {"matrix": [2, 12], "x": 12.5, "y": 2},
+ {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5},
+ {"matrix": [2, 14], "x": 15, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3},
+ {"matrix": [3, 2], "x": 2.75, "y": 3},
+ {"matrix": [3, 3], "x": 3.75, "y": 3},
+ {"matrix": [3, 4], "x": 4.75, "y": 3},
+ {"matrix": [3, 5], "x": 5.75, "y": 3},
+ {"matrix": [3, 6], "x": 6.75, "y": 3},
+ {"matrix": [3, 7], "x": 7.75, "y": 3},
+ {"matrix": [3, 8], "x": 8.75, "y": 3},
+ {"matrix": [3, 9], "x": 9.75, "y": 3},
+ {"matrix": [3, 10], "x": 10.75, "y": 3},
+ {"matrix": [3, 11], "x": 11.75, "y": 3},
+ {"matrix": [3, 12], "x": 12.75, "y": 3},
+ {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
+ {"matrix": [3, 14], "x": 15, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4},
+ {"matrix": [4, 2], "x": 2.25, "y": 4},
+ {"matrix": [4, 3], "x": 3.25, "y": 4},
+ {"matrix": [4, 4], "x": 4.25, "y": 4},
+ {"matrix": [4, 5], "x": 5.25, "y": 4},
+ {"matrix": [4, 6], "x": 6.25, "y": 4},
+ {"matrix": [4, 7], "x": 7.25, "y": 4},
+ {"matrix": [4, 8], "x": 8.25, "y": 4},
+ {"matrix": [4, 9], "x": 9.25, "y": 4},
+ {"matrix": [4, 10], "x": 10.25, "y": 4},
+ {"matrix": [4, 11], "x": 11.25, "y": 4},
+ {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4},
+ {"matrix": [4, 14], "x": 15, "y": 4},
+
+ {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
+ {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25},
+ {"matrix": [5, 9], "x": 10, "y": 5},
+ {"matrix": [5, 10], "x": 11, "y": 5},
+ {"matrix": [5, 11], "x": 12, "y": 5},
+ {"matrix": [5, 12], "x": 13, "y": 5},
+ {"matrix": [5, 13], "x": 14, "y": 5},
+ {"matrix": [5, 14], "x": 15, "y": 5}
+ ]
+ },
"LAYOUT_83_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
diff --git a/keyboards/bear_face/v2/keymaps/default/keymap.c b/keyboards/bear_face/v2/keymaps/default/keymap.c
index 0d536b68f3..08f193052a 100644
--- a/keyboards/bear_face/v2/keymaps/default/keymap.c
+++ b/keyboards/bear_face/v2/keymaps/default/keymap.c
@@ -1,19 +1,5 @@
-/*
-Copyright 2020 chemicalwill <https://github.com/chemicalwill>
-
-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/>.
-*/
+/* Copyright 2024 will-hedges */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#include QMK_KEYBOARD_H
@@ -28,7 +14,7 @@ enum layers {
//custom keycode enums
enum custom_keycodes {
- BASE_QWER = SAFE_RANGE,
+ BASE_QWER = QK_USER,
BASE_COLE,
BASE_DVOR
};
@@ -82,8 +68,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
};
-//macros to allow the user to set whatever default layer they want, even after reboot
+// macros to allow the user to set whatever default layer they want, even after reboot
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case BASE_QWER:
diff --git a/keyboards/bear_face/v2/keymaps/default/readme.md b/keyboards/bear_face/v2/keymaps/default/readme.md
index 5f9e635dfe..517baa5726 100644
--- a/keyboards/bear_face/v2/keymaps/default/readme.md
+++ b/keyboards/bear_face/v2/keymaps/default/readme.md
@@ -13,3 +13,7 @@ This layout replaces the stock layout on the Vortex Race 3.
* 'Reset' will put the keyboard into DFU mode
* 'APP' sends 'KC_APP'
* Base layer toggles for QWERTY, COLEMAK, and DVORAK layouts (will persist after reboot)
+
+- New things in v2:
+ * Option of ANSI or ISO layout
+ * Optional stepped caps (will require compatible plate)
diff --git a/keyboards/bear_face/v2/keymaps/default_iso/keymap.c b/keyboards/bear_face/v2/keymaps/default_iso/keymap.c
index e9e6c837f4..a5e96207f6 100644
--- a/keyboards/bear_face/v2/keymaps/default_iso/keymap.c
+++ b/keyboards/bear_face/v2/keymaps/default_iso/keymap.c
@@ -1,19 +1,5 @@
-/*
-Copyright 2020 chemicalwill <https://github.com/chemicalwill>
-
-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/>.
-*/
+/* Copyright 2024 will-hedges */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#include QMK_KEYBOARD_H
@@ -28,7 +14,7 @@ enum layers {
//custom keycode enums
enum custom_keycodes {
- BASE_QWER = SAFE_RANGE,
+ BASE_QWER = QK_USER,
BASE_COLE,
BASE_DVOR
};
@@ -82,8 +68,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
};
-//macros to allow the user to set whatever default layer they want, even after reboot
+//macros to allow the user to set whatever default layer they want, even after reboot
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case BASE_QWER:
diff --git a/keyboards/bear_face/v2/v2.c b/keyboards/bear_face/v2/v2.c
deleted file mode 100644
index b64a63f0b4..0000000000
--- a/keyboards/bear_face/v2/v2.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright 2020 chemicalwill <https://github.com/chemicalwill>
-
-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 "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- //Sets LED pin as output
- gpio_set_pin_output(F7);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- // Caps Lock LED indicator toggling code here
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(F7, led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/bear_face/v3/keyboard.json b/keyboards/bear_face/v3/keyboard.json
new file mode 100644
index 0000000000..0a0bda8df9
--- /dev/null
+++ b/keyboards/bear_face/v3/keyboard.json
@@ -0,0 +1,287 @@
+{
+ "keyboard_name": "bear_face v3",
+ "usb": {
+ "device_version": "3.2.0"
+ },
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+ {"matrix": [0, 1], "x": 1.5, "y": 0},
+ {"matrix": [0, 2], "x": 2.5, "y": 0},
+ {"matrix": [0, 3], "x": 3.5, "y": 0},
+ {"matrix": [0, 4], "x": 4.5, "y": 0},
+ {"matrix": [0, 5], "x": 5.5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.5, "y": 0},
+ {"matrix": [0, 10], "x": 10.5, "y": 0},
+ {"matrix": [0, 11], "x": 11.5, "y": 0},
+ {"matrix": [0, 12], "x": 12.5, "y": 0},
+ {"matrix": [0, 13], "x": 13.5, "y": 0},
+ {"matrix": [0, 14], "x": 14.5, "y": 0, "w": 1.5},
+
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1},
+ {"matrix": [1, 5], "x": 5, "y": 1},
+ {"matrix": [1, 6], "x": 6, "y": 1},
+ {"matrix": [1, 7], "x": 7, "y": 1},
+ {"matrix": [1, 8], "x": 8, "y": 1},
+ {"matrix": [1, 9], "x": 9, "y": 1},
+ {"matrix": [1, 10], "x": 10, "y": 1},
+ {"matrix": [1, 11], "x": 11, "y": 1},
+ {"matrix": [1, 12], "x": 12, "y": 1},
+ {"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
+ {"matrix": [1, 14], "x": 15, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2},
+ {"matrix": [2, 2], "x": 2.5, "y": 2},
+ {"matrix": [2, 3], "x": 3.5, "y": 2},
+ {"matrix": [2, 4], "x": 4.5, "y": 2},
+ {"matrix": [2, 5], "x": 5.5, "y": 2},
+ {"matrix": [2, 6], "x": 6.5, "y": 2},
+ {"matrix": [2, 7], "x": 7.5, "y": 2},
+ {"matrix": [2, 8], "x": 8.5, "y": 2},
+ {"matrix": [2, 9], "x": 9.5, "y": 2},
+ {"matrix": [2, 10], "x": 10.5, "y": 2},
+ {"matrix": [2, 11], "x": 11.5, "y": 2},
+ {"matrix": [2, 12], "x": 12.5, "y": 2},
+ {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5},
+ {"matrix": [2, 14], "x": 15, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3},
+ {"matrix": [3, 2], "x": 2.75, "y": 3},
+ {"matrix": [3, 3], "x": 3.75, "y": 3},
+ {"matrix": [3, 4], "x": 4.75, "y": 3},
+ {"matrix": [3, 5], "x": 5.75, "y": 3},
+ {"matrix": [3, 6], "x": 6.75, "y": 3},
+ {"matrix": [3, 7], "x": 7.75, "y": 3},
+ {"matrix": [3, 8], "x": 8.75, "y": 3},
+ {"matrix": [3, 9], "x": 9.75, "y": 3},
+ {"matrix": [3, 10], "x": 10.75, "y": 3},
+ {"matrix": [3, 11], "x": 11.75, "y": 3},
+ {"matrix": [3, 12], "x": 12.75, "y": 3},
+ {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
+ {"matrix": [3, 14], "x": 15, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4},
+ {"matrix": [4, 2], "x": 2.25, "y": 4},
+ {"matrix": [4, 3], "x": 3.25, "y": 4},
+ {"matrix": [4, 4], "x": 4.25, "y": 4},
+ {"matrix": [4, 5], "x": 5.25, "y": 4},
+ {"matrix": [4, 6], "x": 6.25, "y": 4},
+ {"matrix": [4, 7], "x": 7.25, "y": 4},
+ {"matrix": [4, 8], "x": 8.25, "y": 4},
+ {"matrix": [4, 9], "x": 9.25, "y": 4},
+ {"matrix": [4, 10], "x": 10.25, "y": 4},
+ {"matrix": [4, 11], "x": 11.25, "y": 4},
+ {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4},
+ {"matrix": [4, 14], "x": 15, "y": 4},
+
+ {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
+ {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25},
+ {"matrix": [5, 9], "x": 10, "y": 5},
+ {"matrix": [5, 10], "x": 11, "y": 5},
+ {"matrix": [5, 11], "x": 12, "y": 5},
+ {"matrix": [5, 12], "x": 13, "y": 5},
+ {"matrix": [5, 13], "x": 14, "y": 5},
+ {"matrix": [5, 14], "x": 15, "y": 5}
+ ]
+ },
+ "LAYOUT_83_ansi": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+ {"matrix": [0, 1], "x": 1.5, "y": 0},
+ {"matrix": [0, 2], "x": 2.5, "y": 0},
+ {"matrix": [0, 3], "x": 3.5, "y": 0},
+ {"matrix": [0, 4], "x": 4.5, "y": 0},
+ {"matrix": [0, 5], "x": 5.5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.5, "y": 0},
+ {"matrix": [0, 10], "x": 10.5, "y": 0},
+ {"matrix": [0, 11], "x": 11.5, "y": 0},
+ {"matrix": [0, 12], "x": 12.5, "y": 0},
+ {"matrix": [0, 13], "x": 13.5, "y": 0},
+ {"matrix": [0, 14], "x": 14.5, "y": 0, "w": 1.5},
+
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1},
+ {"matrix": [1, 5], "x": 5, "y": 1},
+ {"matrix": [1, 6], "x": 6, "y": 1},
+ {"matrix": [1, 7], "x": 7, "y": 1},
+ {"matrix": [1, 8], "x": 8, "y": 1},
+ {"matrix": [1, 9], "x": 9, "y": 1},
+ {"matrix": [1, 10], "x": 10, "y": 1},
+ {"matrix": [1, 11], "x": 11, "y": 1},
+ {"matrix": [1, 12], "x": 12, "y": 1},
+ {"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
+ {"matrix": [1, 14], "x": 15, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2},
+ {"matrix": [2, 2], "x": 2.5, "y": 2},
+ {"matrix": [2, 3], "x": 3.5, "y": 2},
+ {"matrix": [2, 4], "x": 4.5, "y": 2},
+ {"matrix": [2, 5], "x": 5.5, "y": 2},
+ {"matrix": [2, 6], "x": 6.5, "y": 2},
+ {"matrix": [2, 7], "x": 7.5, "y": 2},
+ {"matrix": [2, 8], "x": 8.5, "y": 2},
+ {"matrix": [2, 9], "x": 9.5, "y": 2},
+ {"matrix": [2, 10], "x": 10.5, "y": 2},
+ {"matrix": [2, 11], "x": 11.5, "y": 2},
+ {"matrix": [2, 12], "x": 12.5, "y": 2},
+ {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5},
+ {"matrix": [2, 14], "x": 15, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3},
+ {"matrix": [3, 2], "x": 2.75, "y": 3},
+ {"matrix": [3, 3], "x": 3.75, "y": 3},
+ {"matrix": [3, 4], "x": 4.75, "y": 3},
+ {"matrix": [3, 5], "x": 5.75, "y": 3},
+ {"matrix": [3, 6], "x": 6.75, "y": 3},
+ {"matrix": [3, 7], "x": 7.75, "y": 3},
+ {"matrix": [3, 8], "x": 8.75, "y": 3},
+ {"matrix": [3, 9], "x": 9.75, "y": 3},
+ {"matrix": [3, 10], "x": 10.75, "y": 3},
+ {"matrix": [3, 11], "x": 11.75, "y": 3},
+ {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25},
+ {"matrix": [3, 14], "x": 15, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4},
+ {"matrix": [4, 3], "x": 3.25, "y": 4},
+ {"matrix": [4, 4], "x": 4.25, "y": 4},
+ {"matrix": [4, 5], "x": 5.25, "y": 4},
+ {"matrix": [4, 6], "x": 6.25, "y": 4},
+ {"matrix": [4, 7], "x": 7.25, "y": 4},
+ {"matrix": [4, 8], "x": 8.25, "y": 4},
+ {"matrix": [4, 9], "x": 9.25, "y": 4},
+ {"matrix": [4, 10], "x": 10.25, "y": 4},
+ {"matrix": [4, 11], "x": 11.25, "y": 4},
+ {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4},
+ {"matrix": [4, 14], "x": 15, "y": 4},
+
+ {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
+ {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25},
+ {"matrix": [5, 9], "x": 10, "y": 5},
+ {"matrix": [5, 10], "x": 11, "y": 5},
+ {"matrix": [5, 11], "x": 12, "y": 5},
+ {"matrix": [5, 12], "x": 13, "y": 5},
+ {"matrix": [5, 13], "x": 14, "y": 5},
+ {"matrix": [5, 14], "x": 15, "y": 5}
+ ]
+ },
+ "LAYOUT_84_iso": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+ {"matrix": [0, 1], "x": 1.5, "y": 0},
+ {"matrix": [0, 2], "x": 2.5, "y": 0},
+ {"matrix": [0, 3], "x": 3.5, "y": 0},
+ {"matrix": [0, 4], "x": 4.5, "y": 0},
+ {"matrix": [0, 5], "x": 5.5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.5, "y": 0},
+ {"matrix": [0, 10], "x": 10.5, "y": 0},
+ {"matrix": [0, 11], "x": 11.5, "y": 0},
+ {"matrix": [0, 12], "x": 12.5, "y": 0},
+ {"matrix": [0, 13], "x": 13.5, "y": 0},
+ {"matrix": [0, 14], "x": 14.5, "y": 0, "w": 1.5},
+
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1},
+ {"matrix": [1, 5], "x": 5, "y": 1},
+ {"matrix": [1, 6], "x": 6, "y": 1},
+ {"matrix": [1, 7], "x": 7, "y": 1},
+ {"matrix": [1, 8], "x": 8, "y": 1},
+ {"matrix": [1, 9], "x": 9, "y": 1},
+ {"matrix": [1, 10], "x": 10, "y": 1},
+ {"matrix": [1, 11], "x": 11, "y": 1},
+ {"matrix": [1, 12], "x": 12, "y": 1},
+ {"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
+ {"matrix": [1, 14], "x": 15, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2},
+ {"matrix": [2, 2], "x": 2.5, "y": 2},
+ {"matrix": [2, 3], "x": 3.5, "y": 2},
+ {"matrix": [2, 4], "x": 4.5, "y": 2},
+ {"matrix": [2, 5], "x": 5.5, "y": 2},
+ {"matrix": [2, 6], "x": 6.5, "y": 2},
+ {"matrix": [2, 7], "x": 7.5, "y": 2},
+ {"matrix": [2, 8], "x": 8.5, "y": 2},
+ {"matrix": [2, 9], "x": 9.5, "y": 2},
+ {"matrix": [2, 10], "x": 10.5, "y": 2},
+ {"matrix": [2, 11], "x": 11.5, "y": 2},
+ {"matrix": [2, 12], "x": 12.5, "y": 2},
+ {"matrix": [2, 14], "x": 15, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3},
+ {"matrix": [3, 2], "x": 2.75, "y": 3},
+ {"matrix": [3, 3], "x": 3.75, "y": 3},
+ {"matrix": [3, 4], "x": 4.75, "y": 3},
+ {"matrix": [3, 5], "x": 5.75, "y": 3},
+ {"matrix": [3, 6], "x": 6.75, "y": 3},
+ {"matrix": [3, 7], "x": 7.75, "y": 3},
+ {"matrix": [3, 8], "x": 8.75, "y": 3},
+ {"matrix": [3, 9], "x": 9.75, "y": 3},
+ {"matrix": [3, 10], "x": 10.75, "y": 3},
+ {"matrix": [3, 11], "x": 11.75, "y": 3},
+ {"matrix": [3, 12], "x": 12.75, "y": 3},
+ {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
+ {"matrix": [3, 14], "x": 15, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4},
+ {"matrix": [4, 2], "x": 2.25, "y": 4},
+ {"matrix": [4, 3], "x": 3.25, "y": 4},
+ {"matrix": [4, 4], "x": 4.25, "y": 4},
+ {"matrix": [4, 5], "x": 5.25, "y": 4},
+ {"matrix": [4, 6], "x": 6.25, "y": 4},
+ {"matrix": [4, 7], "x": 7.25, "y": 4},
+ {"matrix": [4, 8], "x": 8.25, "y": 4},
+ {"matrix": [4, 9], "x": 9.25, "y": 4},
+ {"matrix": [4, 10], "x": 10.25, "y": 4},
+ {"matrix": [4, 11], "x": 11.25, "y": 4},
+ {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4},
+ {"matrix": [4, 14], "x": 15, "y": 4},
+
+ {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
+ {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25},
+ {"matrix": [5, 9], "x": 10, "y": 5},
+ {"matrix": [5, 10], "x": 11, "y": 5},
+ {"matrix": [5, 11], "x": 12, "y": 5},
+ {"matrix": [5, 12], "x": 13, "y": 5},
+ {"matrix": [5, 13], "x": 14, "y": 5},
+ {"matrix": [5, 14], "x": 15, "y": 5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/bear_face/v3/keymaps/default/keymap.c b/keyboards/bear_face/v3/keymaps/default/keymap.c
new file mode 100644
index 0000000000..f6e71f1b34
--- /dev/null
+++ b/keyboards/bear_face/v3/keymaps/default/keymap.c
@@ -0,0 +1,92 @@
+/* Copyright 2024 will-hedges */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include QMK_KEYBOARD_H
+
+enum layers {
+ _QWER,
+ _COLE,
+ _DVOR,
+ _FN1,
+};
+
+#define FN1_CAPS LT(_FN1, KC_CAPS)
+
+//custom keycode enums
+enum custom_keycodes {
+ BASE_QWER = QK_USER,
+ BASE_COLE,
+ BASE_DVOR
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWER] = LAYOUT_83_ansi(
+ 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_NO, KC_DEL,
+ 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_BSLS, KC_PGUP,
+ FN1_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_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_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_COLE] = LAYOUT_83_ansi(
+ 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_NO, KC_DEL,
+ 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_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
+ KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_PGDN,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_DVOR] = LAYOUT_83_ansi(
+ 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_NO, KC_DEL,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME,
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_PGUP,
+ FN1_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_PGDN,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_FN1] = LAYOUT_83_ansi(
+ _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_INS,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_CALC, BASE_QWER,
+ _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, BASE_COLE,
+ _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BASE_DVOR,
+ _______, KC_APP, _______, _______, _______, _______, _______, _______, _______, _______, KC_APP, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+/*
+ [_BLANK] = LAYOUT_83_ansi(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+*/
+};
+
+
+// Macros to allow the user to set whatever default layer they want, even after reboot
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case BASE_QWER:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWER);
+ }
+ break;
+ case BASE_COLE:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_COLE);
+ }
+ break;
+ case BASE_DVOR:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_DVOR);
+ }
+ break;
+ }
+ return true;
+};
diff --git a/keyboards/bear_face/v3/keymaps/default/readme.md b/keyboards/bear_face/v3/keymaps/default/readme.md
new file mode 100644
index 0000000000..a86b77bb19
--- /dev/null
+++ b/keyboards/bear_face/v3/keymaps/default/readme.md
@@ -0,0 +1,18 @@
+# default bear_face layout
+
+This layout replaces the stock layout on the Vortex Race 3.
+
+- Caps Lock indicator LED is enabled by default
+- Layer Tap on Caps Lock (tap for Caps Lock, hold for _FN1)
+- FORCE_NKRO enabled by default
+
+- Pn key is set to 'KC_NO' by default
+ * Might be a good place for a macro, or to put your PC to sleep, etc.
+
+- A combined function layer that mimics the sublegends on the stock caps (regardless of layout)
+ * 'Reset' will put the keyboard into DFU mode
+ * 'APP' sends 'KC_APP'
+ * Base layer toggles for QWERTY, COLEMAK, and DVORAK layouts (will persist after reboot)
+
+- New things in v3:
+ * v3.1c PCB is compatible with both rev1 (Micro-USB) and rev2 (USB-C) stock cases
diff --git a/keyboards/bear_face/v3/keymaps/default_iso/keymap.c b/keyboards/bear_face/v3/keymaps/default_iso/keymap.c
new file mode 100644
index 0000000000..cc97d54a9b
--- /dev/null
+++ b/keyboards/bear_face/v3/keymaps/default_iso/keymap.c
@@ -0,0 +1,92 @@
+/* Copyright 2024 will-hedges */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include QMK_KEYBOARD_H
+
+enum layers {
+ _QWER,
+ _COLE,
+ _DVOR,
+ _FN1,
+};
+
+#define FN1_CAPS LT(_FN1, KC_CAPS)
+
+//custom keycode enums
+enum custom_keycodes {
+ BASE_QWER = QK_USER,
+ BASE_COLE,
+ BASE_DVOR
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWER] = LAYOUT_84_iso(
+ 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_NO, KC_DEL,
+ 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,
+ FN1_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_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_COLE] = LAYOUT_84_iso(
+ 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_NO, KC_DEL,
+ 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_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_PGUP,
+ KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_DVOR] = LAYOUT_84_iso(
+ 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_NO, KC_DEL,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME,
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_PGUP,
+ FN1_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_NUHS, KC_ENT, KC_PGDN,
+ KC_LSFT, KC_NUBS, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_FN1] = LAYOUT_84_iso(
+ _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, KC_INS,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_CALC, BASE_QWER,
+ _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, BASE_COLE,
+ _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BASE_DVOR,
+ _______, KC_APP, _______, _______, _______, _______, _______, _______, _______, _______, KC_APP, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+/*
+ [_BLANK] = LAYOUT_84_iso(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+*/
+};
+
+
+// Macros to allow the user to set whatever default layer they want, even after reboot
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case BASE_QWER:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWER);
+ }
+ break;
+ case BASE_COLE:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_COLE);
+ }
+ break;
+ case BASE_DVOR:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_DVOR);
+ }
+ break;
+ }
+ return true;
+};
diff --git a/keyboards/bear_face/v3/keymaps/default_iso/readme.md b/keyboards/bear_face/v3/keymaps/default_iso/readme.md
new file mode 100644
index 0000000000..a86b77bb19
--- /dev/null
+++ b/keyboards/bear_face/v3/keymaps/default_iso/readme.md
@@ -0,0 +1,18 @@
+# default bear_face layout
+
+This layout replaces the stock layout on the Vortex Race 3.
+
+- Caps Lock indicator LED is enabled by default
+- Layer Tap on Caps Lock (tap for Caps Lock, hold for _FN1)
+- FORCE_NKRO enabled by default
+
+- Pn key is set to 'KC_NO' by default
+ * Might be a good place for a macro, or to put your PC to sleep, etc.
+
+- A combined function layer that mimics the sublegends on the stock caps (regardless of layout)
+ * 'Reset' will put the keyboard into DFU mode
+ * 'APP' sends 'KC_APP'
+ * Base layer toggles for QWERTY, COLEMAK, and DVORAK layouts (will persist after reboot)
+
+- New things in v3:
+ * v3.1c PCB is compatible with both rev1 (Micro-USB) and rev2 (USB-C) stock cases
diff --git a/keyboards/bioi/g60/g60.c b/keyboards/bioi/g60/g60.c
deleted file mode 100644
index 3fdfef8897..0000000000
--- a/keyboards/bioi/g60/g60.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-Copyright 2019 Basic I/O Instruments(Scott Wei) <[email protected]>
-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 "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(F0);
- gpio_write_pin_high(F0);
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if (led_update_user(led_state)) {
- gpio_write_pin(F0, !led_state.caps_lock);
- }
- return true;
-}
diff --git a/keyboards/bioi/g60/keyboard.json b/keyboards/bioi/g60/keyboard.json
index 8d3dd58770..b98aee8273 100644
--- a/keyboards/bioi/g60/keyboard.json
+++ b/keyboards/bioi/g60/keyboard.json
@@ -35,6 +35,10 @@
"pin": "B7",
"levels": 12
},
+ "indicators": {
+ "caps_lock": "F0",
+ "on_state": 0
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/bioi/morgan65/keyboard.json b/keyboards/bioi/morgan65/keyboard.json
index 8f83237f82..5606233f2a 100644
--- a/keyboards/bioi/morgan65/keyboard.json
+++ b/keyboards/bioi/morgan65/keyboard.json
@@ -35,6 +35,10 @@
"pin": "B6",
"levels": 12
},
+ "indicators": {
+ "caps_lock": "F0",
+ "on_state": 0
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/bioi/morgan65/morgan65.c b/keyboards/bioi/morgan65/morgan65.c
deleted file mode 100644
index 3fdfef8897..0000000000
--- a/keyboards/bioi/morgan65/morgan65.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-Copyright 2019 Basic I/O Instruments(Scott Wei) <[email protected]>
-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 "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(F0);
- gpio_write_pin_high(F0);
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if (led_update_user(led_state)) {
- gpio_write_pin(F0, !led_state.caps_lock);
- }
- return true;
-}
diff --git a/keyboards/bioi/s65/keyboard.json b/keyboards/bioi/s65/keyboard.json
index c55852f31c..56d53b54cf 100644
--- a/keyboards/bioi/s65/keyboard.json
+++ b/keyboards/bioi/s65/keyboard.json
@@ -35,6 +35,10 @@
"pin": "B6",
"levels": 12
},
+ "indicators": {
+ "caps_lock": "F0",
+ "on_state": 0
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/bioi/s65/s65.c b/keyboards/bioi/s65/s65.c
deleted file mode 100644
index e632f31eeb..0000000000
--- a/keyboards/bioi/s65/s65.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-Copyright 2019 Basic I/O Instruments(Scott Wei) <[email protected]>
-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 "quantum.h"
-void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(F0);
- gpio_write_pin_high(F0);
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if (led_update_user(led_state)) {
- gpio_write_pin(F0, !led_state.caps_lock);
- }
- return true;
-}
diff --git a/keyboards/boardsource/lib/oled.c b/keyboards/boardsource/lib/oled.c
new file mode 100644
index 0000000000..c0fb6ab4a6
--- /dev/null
+++ b/keyboards/boardsource/lib/oled.c
@@ -0,0 +1,20 @@
+// Copyright 2024 jack (@waffle87)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include "oled.h"
+
+void render_layer_state(void) {
+ switch (get_highest_layer(layer_state)) {
+ case 0:
+ oled_write_raw_P(layer0_img, sizeof(layer0_img));
+ break;
+ case 1:
+ oled_write_raw_P(layer1_img, sizeof(layer1_img));
+ break;
+ case 2:
+ oled_write_raw_P(layer2_img, sizeof(layer2_img));
+ break;
+ case 3:
+ oled_write_raw_P(layer3_img, sizeof(layer3_img));
+ break;
+ }
+}
diff --git a/keyboards/boardsource/unicorne/unicorne.h b/keyboards/boardsource/lib/oled.h
index 68bbeeb18a..4778be20b0 100644
--- a/keyboards/boardsource/unicorne/unicorne.h
+++ b/keyboards/boardsource/lib/oled.h
@@ -1,54 +1,12 @@
-// Copyright 2023 jack (@waffle87)
+// Copyright 2024 jack (@waffle87)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "quantum.h"
-#ifdef OLED_ENABLE
-// clang-format off
-static const char PROGMEM logo[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0xc0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
- 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x01, 0xe3, 0xe7, 0xe7, 0xe3,
- 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00,
- 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00,
- 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0,
- 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0,
- 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x7e, 0xff, 0xff, 0xff, 0xe7, 0xc1, 0x81, 0x81, 0x81, 0xc1, 0x00, 0x00, 0x7f,
- 0xff, 0xff, 0xff, 0xe3, 0xc1, 0x81, 0x81, 0xc1, 0xe3, 0xff, 0xff, 0xff, 0xff, 0x3c, 0x00, 0x00,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
- 0x03, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff,
- 0xcd, 0x8c, 0x8c, 0x8c, 0x8d, 0xcf, 0xcf, 0xcf, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x07, 0x07, 0x07,
- 0x07, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
- 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03,
- 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
+void render_layer_state(void);
-static const char PROGMEM layer_zero[] = {
+// clang-format off
+static const char PROGMEM layer0_img[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -83,8 +41,7 @@ static const char PROGMEM layer_zero[] = {
0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
};
-
-static const char PROGMEM layer_one[] = {
+static const char PROGMEM layer1_img[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -119,8 +76,7 @@ static const char PROGMEM layer_one[] = {
0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
};
-
-static const char PROGMEM layer_two[] = {
+static const char PROGMEM layer2_img[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -155,8 +111,7 @@ static const char PROGMEM layer_two[] = {
0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
};
-
-static const char PROGMEM layer_three[] = {
+static const char PROGMEM layer3_img[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
@@ -190,5 +145,39 @@ static const char PROGMEM layer_three[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
};
+
+static const char PROGMEM bs_logo_img[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0x60, 0x60, 0x60,
+ 0x60, 0x60, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
+ 0x00, 0xe0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfc, 0x1e, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x80, 0xc0,
+ 0x80, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0e, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff,
+ 0xe0, 0xc0, 0x80, 0x80, 0xc0, 0xc0, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
+ 0x00, 0x1f, 0xff, 0xff, 0xc0, 0xc0, 0x80, 0xc0, 0xc0, 0xe0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x78, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe0, 0x78, 0x3f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03,
+ 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
// clang-format on
-#endif
diff --git a/keyboards/boardsource/lulu/avr/rules.mk b/keyboards/boardsource/lulu/avr/rules.mk
new file mode 100644
index 0000000000..de6a3d8afc
--- /dev/null
+++ b/keyboards/boardsource/lulu/avr/rules.mk
@@ -0,0 +1 @@
+SRC += lib/oled.c
diff --git a/keyboards/boardsource/lulu/lulu.c b/keyboards/boardsource/lulu/lulu.c
index 8d011268c4..b20228a7d7 100644
--- a/keyboards/boardsource/lulu/lulu.c
+++ b/keyboards/boardsource/lulu/lulu.c
@@ -1,6 +1,7 @@
// Copyright 2022 Cole Smith <[email protected]>
// SPDX-License-Identifier: GPL-2.0-or-later
#include "quantum.h"
+#include "lib/oled.h"
#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
@@ -24,225 +25,20 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
#ifdef OLED_ENABLE
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
- if (!is_keyboard_master()) {
- return OLED_ROTATION_180;
- }
- return rotation;
-}
-
-void render_layer1_logo(void){
- static const char PROGMEM layer_logo[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
- 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
- 0xfc, 0x0e, 0x07, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
- 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0x60,
- 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
- 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
- 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
- };
- oled_write_raw_P(layer_logo, sizeof(layer_logo));
-}
-
-void render_layer2_logo(void){
- static const char PROGMEM layer_logo[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
- 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
- 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
- 0x3f, 0x70, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0x60,
- 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
- 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
- 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
- 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
- 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
- };
- oled_write_raw_P(layer_logo, sizeof(layer_logo));
-}
-
-void render_layer3_logo(void){
- static const char PROGMEM layer_logo[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
- 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
- 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0x70, 0x38, 0x1f, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0x60,
- 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
- 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
- 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
- };
- oled_write_raw_P(layer_logo, sizeof(layer_logo));
-}
-
-void render_layer4_logo(void){
- static const char PROGMEM layer_logo[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
- 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x07, 0x0e, 0xfc, 0xf0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
- 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0x60,
- 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
- 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
- 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
- };
- oled_write_raw_P(layer_logo, sizeof(layer_logo));
-}
-
-void render_logo(void) {
- static const char PROGMEM logo[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0x60, 0x60, 0x60,
- 0x60, 0x60, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
- 0x00, 0xe0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfc, 0x1e, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x80, 0xc0,
- 0x80, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0e, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff,
- 0xe0, 0xc0, 0x80, 0x80, 0xc0, 0xc0, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
- 0x00, 0x1f, 0xff, 0xff, 0xc0, 0xc0, 0x80, 0xc0, 0xc0, 0xe0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x78, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe0, 0x78, 0x3f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03,
- 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- };
- oled_write_raw_P(logo, sizeof(logo));
-}
-
-void process_layer_state(void) {
- switch (get_highest_layer(layer_state)) {
- case 0:
- render_layer1_logo();
- break;
- case 1:
- render_layer2_logo();
- break;
- case 2:
- render_layer3_logo();
- break;
- case 3:
- render_layer4_logo();
- break;
+ if (!is_keyboard_master()) {
+ return OLED_ROTATION_180;
}
+ return rotation;
}
bool oled_task_kb(void) {
- if (!oled_task_user()) { return false; }
+ if (!oled_task_user()) {
+ return false;
+ }
if (is_keyboard_master()) {
- process_layer_state();
+ render_layer_state();
} else {
- render_logo();
+ oled_write_raw_P(bs_logo_img, sizeof(bs_logo_img));
}
return false;
}
diff --git a/keyboards/boardsource/lulu/rp2040/rules.mk b/keyboards/boardsource/lulu/rp2040/rules.mk
index 161ec22b16..118c27fc6a 100644
--- a/keyboards/boardsource/lulu/rp2040/rules.mk
+++ b/keyboards/boardsource/lulu/rp2040/rules.mk
@@ -1 +1,2 @@
SERIAL_DRIVER = vendor
+SRC += lib/oled.c
diff --git a/keyboards/boardsource/the_q/keyboard.json b/keyboards/boardsource/the_q/keyboard.json
new file mode 100644
index 0000000000..b48b5e080b
--- /dev/null
+++ b/keyboards/boardsource/the_q/keyboard.json
@@ -0,0 +1,142 @@
+{
+ "manufacturer": "Boardsource",
+ "keyboard_name": "The Q",
+ "maintainer": "waffle87",
+ "development_board": "promicro",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true,
+ "oled": true
+ },
+ "matrix_pins": {
+ "rows": ["B2", "B3", "B1", "F7", "F6", "F5", "F4"],
+ "cols": ["D4", "C6", "D7", "E6", "B4", "B5"]
+ },
+ "url": "https://boardsource.xyz",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x7552",
+ "vid": "0x4273"
+ },
+ "ws2812": {
+ "pin": "B6"
+ },
+ "rgb_matrix": {
+ "animations": {
+ "alphas_mods": true,
+ "band_sat": true,
+ "band_val": true,
+ "breathing": true,
+ "gradient_left_right": true,
+ "gradient_up_down": true
+ },
+ "default": {
+ "animation": "alphas_mods"
+ },
+ "max_brightness": 150,
+ "driver": "ws2812",
+ "layout": [
+ {"x": 112, "y": 10, "flags": 2},
+ {"x": 181, "y": 5, "flags": 2},
+ {"x": 215, "y": 53, "flags": 2},
+ {"x": 112, "y": 64, "flags": 2},
+ {"x": 26, "y": 53, "flags": 2},
+ {"x": 43, "y": 5, "flags": 2},
+ {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4},
+ {"matrix": [1, 1], "x": 17, "y": 42, "flags": 4},
+ {"matrix": [2, 1], "x": 17, "y": 21, "flags": 4},
+ {"matrix": [2, 2], "x": 34, "y": 21, "flags": 4},
+ {"matrix": [1, 2], "x": 34, "y": 42, "flags": 4},
+ {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4},
+ {"matrix": [1, 3], "x": 52, "y": 42, "flags": 4},
+ {"matrix": [2, 3], "x": 52, "y": 21, "flags": 4},
+ {"matrix": [2, 4], "x": 69, "y": 21, "flags": 4},
+ {"matrix": [1, 4], "x": 69, "y": 42, "flags": 4},
+ {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4},
+ {"matrix": [1, 5], "x": 86, "y": 42, "flags": 4},
+ {"matrix": [2, 5], "x": 86, "y": 21, "flags": 4},
+ {"matrix": [3, 0], "x": 69, "y": 20, "flags": 1},
+ {"matrix": [3, 1], "x": 86, "y": 20, "flags": 1},
+ {"matrix": [3, 2], "x": 103, "y": 64, "flags": 1},
+ {"matrix": [3, 3], "x": 120, "y": 64, "flags": 1},
+ {"matrix": [3, 4], "x": 138, "y": 20, "flags": 1},
+ {"matrix": [3, 5], "x": 155, "y": 20, "flags": 1},
+ {"matrix": [4, 5], "x": 138, "y": 21, "flags": 4},
+ {"matrix": [5, 5], "x": 138, "y": 42, "flags": 4},
+ {"matrix": [6, 5], "x": 138, "y": 0, "flags": 4},
+ {"matrix": [6, 4], "x": 155, "y": 0, "flags": 4},
+ {"matrix": [5, 4], "x": 155, "y": 42, "flags": 4},
+ {"matrix": [4, 4], "x": 155, "y": 21, "flags": 4},
+ {"matrix": [4, 3], "x": 172, "y": 21, "flags": 4},
+ {"matrix": [5, 3], "x": 172, "y": 42, "flags": 4},
+ {"matrix": [6, 3], "x": 172, "y": 0, "flags": 4},
+ {"matrix": [6, 2], "x": 189, "y": 0, "flags": 4},
+ {"matrix": [5, 2], "x": 189, "y": 42, "flags": 4},
+ {"matrix": [4, 2], "x": 189, "y": 21, "flags": 4},
+ {"matrix": [4, 1], "x": 206, "y": 21, "flags": 4},
+ {"matrix": [5, 1], "x": 206, "y": 42, "flags": 4},
+ {"matrix": [6, 1], "x": 206, "y": 0, "flags": 4},
+ {"matrix": [6, 0], "x": 224, "y": 0, "flags": 1},
+ {"matrix": [5, 0], "x": 224, "y": 42, "flags": 1},
+ {"matrix": [4, 0], "x": 224, "y": 21, "flags": 1},
+ {"matrix": [2, 0], "x": 0, "y": 21, "flags": 1},
+ {"matrix": [1, 0], "x": 0, "y": 42, "flags": 1},
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}
+ ]
+ },
+ "community_layouts": ["split_3x6_3"],
+ "layouts": {
+ "LAYOUT_split_3x6_3": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0.25},
+ {"matrix": [0, 1], "x": 1, "y": 0.25},
+ {"matrix": [0, 2], "x": 2, "y": 0.125},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0.125},
+ {"matrix": [0, 5], "x": 5, "y": 0.25},
+ {"matrix": [6, 5], "x": 8, "y": 0.25},
+ {"matrix": [6, 4], "x": 9, "y": 0.125},
+ {"matrix": [6, 3], "x": 10, "y": 0},
+ {"matrix": [6, 2], "x": 11, "y": 0.125},
+ {"matrix": [6, 1], "x": 12, "y": 0.25},
+ {"matrix": [6, 0], "x": 13, "y": 0.25},
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.125},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1.125},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [5, 5], "x": 8, "y": 1.25},
+ {"matrix": [5, 4], "x": 9, "y": 1.125},
+ {"matrix": [5, 3], "x": 10, "y": 1},
+ {"matrix": [5, 2], "x": 11, "y": 1.125},
+ {"matrix": [5, 1], "x": 12, "y": 1.25},
+ {"matrix": [5, 0], "x": 13, "y": 1.25},
+ {"matrix": [2, 0], "x": 0, "y": 2.25},
+ {"matrix": [2, 1], "x": 1, "y": 2.25},
+ {"matrix": [2, 2], "x": 2, "y": 2.125},
+ {"matrix": [2, 3], "x": 3, "y": 2},
+ {"matrix": [2, 4], "x": 4, "y": 2.125},
+ {"matrix": [2, 5], "x": 5, "y": 2.25},
+ {"matrix": [4, 5], "x": 8, "y": 2.25},
+ {"matrix": [4, 4], "x": 9, "y": 2.125},
+ {"matrix": [4, 3], "x": 10, "y": 2},
+ {"matrix": [4, 2], "x": 11, "y": 2.125},
+ {"matrix": [4, 1], "x": 12, "y": 2.25},
+ {"matrix": [4, 0], "x": 13, "y": 2.25},
+ {"matrix": [3, 0], "x": 3.5, "y": 3.25},
+ {"matrix": [3, 1], "x": 4.5, "y": 3.5},
+ {"matrix": [3, 2], "x": 5.5, "y": 3.75},
+ {"matrix": [3, 3], "x": 7.5, "y": 3.75},
+ {"matrix": [3, 4], "x": 8.5, "y": 3.5},
+ {"matrix": [3, 5], "x": 9.5, "y": 3.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/boardsource/the_q/keymaps/default/keymap.json b/keyboards/boardsource/the_q/keymaps/default/keymap.json
new file mode 100644
index 0000000000..69aa6f8629
--- /dev/null
+++ b/keyboards/boardsource/the_q/keymaps/default/keymap.json
@@ -0,0 +1,25 @@
+{
+ "keyboard": "boardsource/the_q",
+ "keymap": "default",
+ "layout": "LAYOUT_split_3x6_3",
+ "layers": [
+ [
+ "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC",
+ "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT",
+ "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ESC",
+ "KC_LGUI", "MO(1)", "KC_SPC", "KC_ENT", "MO(2)", "KC_RALT"
+ ],
+ [
+ "_______", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "_______",
+ "_______", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "_______",
+ "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
+ "_______", "_______", "_______", "_______", "_______", "_______"
+ ],
+ [
+ "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_MOD", "RGB_TOG", "_______",
+ "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RGB_VAD", "RGB_HUD", "RGB_SAD", "RGB_RMOD", "_______", "_______",
+ "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
+ "_______", "_______", "_______", "_______", "_______", "_______"
+ ]
+ ]
+}
diff --git a/keyboards/boardsource/the_q/keymaps/via/keymap.json b/keyboards/boardsource/the_q/keymaps/via/keymap.json
new file mode 100644
index 0000000000..40a68c3f51
--- /dev/null
+++ b/keyboards/boardsource/the_q/keymaps/via/keymap.json
@@ -0,0 +1,30 @@
+{
+ "keyboard": "boardsource/the_q",
+ "keymap": "via",
+ "layout": "LAYOUT_split_3x6_3",
+ "config": {
+ "features": {
+ "via": true
+ }
+ },
+ "layers": [
+ [
+ "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC",
+ "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT",
+ "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ESC",
+ "KC_LGUI", "MO(1)", "KC_SPC", "KC_ENT", "MO(2)", "KC_RALT"
+ ],
+ [
+ "_______", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "_______",
+ "_______", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "_______",
+ "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
+ "_______", "_______", "_______", "_______", "_______", "_______"
+ ],
+ [
+ "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_MOD", "RGB_TOG", "_______",
+ "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RGB_VAD", "RGB_HUD", "RGB_SAD", "RGB_RMOD", "_______", "_______",
+ "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
+ "_______", "_______", "_______", "_______", "_______", "_______"
+ ]
+ ]
+}
diff --git a/keyboards/boardsource/the_q/readme.md b/keyboards/boardsource/the_q/readme.md
new file mode 100644
index 0000000000..9ec8fe8eda
--- /dev/null
+++ b/keyboards/boardsource/the_q/readme.md
@@ -0,0 +1,23 @@
+# The Q
+
+* Keyboard Maintainer: [waffle87](https://github.com/waffle87)
+* Hardware Supported: The Q PCB w/ Pro Micro style microcontroller
+* Hardware Availability: [boardsource.xyz](https://boardsource.xyz)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make boardsource/the_q:default
+
+Flashing example for this keyboard:
+
+ mke boardsource/the_q:default: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).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (top left key)
+* **Physical reset button**: Briefly press the button on the front of the PCB
+* **Keycode in layout**: Press the key mapped to `QK_BOOT`
diff --git a/keyboards/boardsource/the_q/rules.mk b/keyboards/boardsource/the_q/rules.mk
new file mode 100644
index 0000000000..de6a3d8afc
--- /dev/null
+++ b/keyboards/boardsource/the_q/rules.mk
@@ -0,0 +1 @@
+SRC += lib/oled.c
diff --git a/keyboards/boardsource/the_q/the_q.c b/keyboards/boardsource/the_q/the_q.c
new file mode 100644
index 0000000000..0929456911
--- /dev/null
+++ b/keyboards/boardsource/the_q/the_q.c
@@ -0,0 +1,14 @@
+// Copyright 2024 jack (@waffle87)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include "quantum.h"
+#include "lib/oled.h"
+
+#ifdef OLED_ENABLE
+bool oled_task_kb(void) {
+ if (!oled_task_user()) {
+ return false;
+ }
+ render_layer_state();
+ return false;
+}
+#endif
diff --git a/keyboards/boardsource/unicorne/rules.mk b/keyboards/boardsource/unicorne/rules.mk
index 48b30dcd51..448962cf00 100644
--- a/keyboards/boardsource/unicorne/rules.mk
+++ b/keyboards/boardsource/unicorne/rules.mk
@@ -1,2 +1,3 @@
SERIAL_DRIVER = vendor
POINTING_DEVICE_DRIVER = analog_joystick
+SRC += lib/oled.c
diff --git a/keyboards/boardsource/unicorne/unicorne.c b/keyboards/boardsource/unicorne/unicorne.c
index 22cd1e4a37..f9dac8d3ef 100644
--- a/keyboards/boardsource/unicorne/unicorne.c
+++ b/keyboards/boardsource/unicorne/unicorne.c
@@ -1,6 +1,7 @@
-// Copyright 2023 jack (@waffle87)
+// Copyright 2024 jack (@waffle87)
// SPDX-License-Identifier: GPL-2.0-or-later
-#include "unicorne.h"
+#include "quantum.h"
+#include "lib/oled.h"
#ifdef OLED_ENABLE
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
@@ -15,22 +16,9 @@ bool oled_task_kb(void) {
return false;
}
if (is_keyboard_master()) {
- switch (get_highest_layer(layer_state)) {
- case 0:
- oled_write_raw(layer_zero, sizeof(layer_zero));
- break;
- case 1:
- oled_write_raw(layer_one, sizeof(layer_one));
- break;
- case 2:
- oled_write_raw(layer_two, sizeof(layer_two));
- break;
- case 3:
- oled_write_raw(layer_three, sizeof(layer_three));
- break;
- }
+ render_layer_state();
} else {
- oled_write_raw(logo, sizeof(logo));
+ oled_write_raw_P(bs_logo_img, sizeof(bs_logo_img));
}
return false;
}
diff --git a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c
index aab005ebd8..7e0b82e9e7 100644
--- a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c
+++ b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c
@@ -101,7 +101,7 @@ uint16_t handle_encoder_clockwise(void){
mapped_code = KC_MEDIA_NEXT_TRACK;
break;
case ENC_MODE_SCROLL:
- mapped_code = KC_WH_D;
+ mapped_code = QK_MOUSE_WHEEL_DOWN;
break;
#ifdef BACKLIGHT_ENABLE
case ENC_MODE_BACKLIGHT:
@@ -143,7 +143,7 @@ uint16_t handle_encoder_ccw(void){
mapped_code = KC_MEDIA_PREV_TRACK;
break;
case ENC_MODE_SCROLL:
- mapped_code = KC_WH_U;
+ mapped_code = QK_MOUSE_WHEEL_UP;
break;
#ifdef BACKLIGHT_ENABLE
case ENC_MODE_BACKLIGHT:
@@ -186,7 +186,7 @@ uint16_t handle_encoder_press(void){
mapped_code = KC_MEDIA_PLAY_PAUSE;
break;
case ENC_MODE_SCROLL:
- mapped_code = KC_BTN3;
+ mapped_code = QK_MOUSE_BUTTON_3;
break;
#ifdef BACKLIGHT_ENABLE
case ENC_MODE_BACKLIGHT:
diff --git a/keyboards/cheshire/curiosity/curiosity.c b/keyboards/cheshire/curiosity/curiosity.c
deleted file mode 100644
index 2813cff9b4..0000000000
--- a/keyboards/cheshire/curiosity/curiosity.c
+++ /dev/null
@@ -1,17 +0,0 @@
-#include "quantum.h"
-
-void matrix_init_board(void){
- gpio_set_pin_output(A8);
- gpio_set_pin_output(A9);
- gpio_set_pin_output(A10);
-}
-
-bool led_update_kb(led_t led_state) {
- bool runDefault = led_update_user(led_state);
- if (runDefault) {
- gpio_write_pin(A8, !led_state.num_lock);
- gpio_write_pin(A9, !led_state.caps_lock);
- gpio_write_pin(A10, !led_state.scroll_lock);
- }
- return runDefault;
-}
diff --git a/keyboards/cheshire/curiosity/keyboard.json b/keyboards/cheshire/curiosity/keyboard.json
index 679f2a45d1..b408a5b6e9 100644
--- a/keyboards/cheshire/curiosity/keyboard.json
+++ b/keyboards/cheshire/curiosity/keyboard.json
@@ -7,6 +7,12 @@
"pid": "0x0FAD",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "A9",
+ "num_lock": "A8",
+ "scroll_lock": "A10",
+ "on_state": 0
+ },
"rgblight": {
"led_count": 14,
"animations": {
diff --git a/keyboards/clueboard/2x1800/2019/2019.c b/keyboards/clueboard/2x1800/2019/2019.c
index 8b0ba6a71e..3fe170af99 100644
--- a/keyboards/clueboard/2x1800/2019/2019.c
+++ b/keyboards/clueboard/2x1800/2019/2019.c
@@ -18,9 +18,6 @@
void matrix_init_kb(void) {
// Set our LED pins as output
gpio_set_pin_output(D6);
- gpio_set_pin_output(B4);
- gpio_set_pin_output(B5);
- gpio_set_pin_output(B6);
// Set our Tilt Sensor pins as input
gpio_set_pin_input_high(SHAKE_PIN_A);
@@ -133,17 +130,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
return process_record_user(keycode, record);
}
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(B4, !led_state.num_lock);
- gpio_write_pin(B5, !led_state.caps_lock);
- gpio_write_pin(B6, !led_state.scroll_lock);
- }
-
- return res;
-}
-
__attribute__((weak)) bool encoder_update_keymap(uint8_t index, bool clockwise) { return true; }
__attribute__((weak)) bool encoder_update_user(uint8_t index, bool clockwise) { return encoder_update_keymap(index, clockwise); }
diff --git a/keyboards/clueboard/2x1800/2019/keyboard.json b/keyboards/clueboard/2x1800/2019/keyboard.json
index 6f33a11ca7..31ff448d17 100644
--- a/keyboards/clueboard/2x1800/2019/keyboard.json
+++ b/keyboards/clueboard/2x1800/2019/keyboard.json
@@ -32,6 +32,12 @@
{"pin_a": "A1", "pin_b": "A0"}
]
},
+ "indicators": {
+ "caps_lock": "B5",
+ "num_lock": "B4",
+ "scroll_lock": "B6",
+ "on_state": 0
+ },
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
},
diff --git a/keyboards/clueboard/2x1800/2021/2021.c b/keyboards/clueboard/2x1800/2021/2021.c
index 2a3f1304c7..5274f76e9c 100644
--- a/keyboards/clueboard/2x1800/2021/2021.c
+++ b/keyboards/clueboard/2x1800/2021/2021.c
@@ -26,6 +26,8 @@ void matrix_scan_kb(void) {
max7219_message_sign_task(true);
led_frame_timer = timer_read();
}
+
+ matrix_scan_user();
}
#endif
@@ -90,6 +92,8 @@ void matrix_init_kb(void) {
#elif defined(DRAWING_TOY_MODE)
max7219_set_led(0, 0, true);
#endif
+
+ matrix_init_user();
}
__attribute__ ((weak))
diff --git a/keyboards/converter/usb_usb/custom_matrix.cpp b/keyboards/converter/usb_usb/custom_matrix.cpp
index ca0855a82b..e1ef695570 100644
--- a/keyboards/converter/usb_usb/custom_matrix.cpp
+++ b/keyboards/converter/usb_usb/custom_matrix.cpp
@@ -229,7 +229,6 @@ extern "C" {
if (kbd2.isReady()) kbd2.SetReport(0, 0, 2, 0, 1, &usb_led);
if (kbd3.isReady()) kbd3.SetReport(0, 0, 2, 0, 1, &usb_led);
if (kbd4.isReady()) kbd4.SetReport(0, 0, 2, 0, 1, &usb_led);
- led_set_user(usb_led);
led_update_kb((led_t){.raw = usb_led});
}
}
diff --git a/keyboards/converter/xmk/xmk.c b/keyboards/converter/xmk/xmk.c
index e0df96fc2d..8a24e5f964 100644
--- a/keyboards/converter/xmk/xmk.c
+++ b/keyboards/converter/xmk/xmk.c
@@ -10,5 +10,7 @@ void keyboard_post_init_kb(void) {
debug_enable=true;
debug_matrix=true;
debug_keyboard=true;
+
+ keyboard_post_init_user();
}
#endif
diff --git a/keyboards/dailycraft/wings42/rev2/keymaps/via/config.h b/keyboards/dailycraft/wings42/rev2/keymaps/via/config.h
index 3e0c8d146a..6a9ab04738 100644
--- a/keyboards/dailycraft/wings42/rev2/keymaps/via/config.h
+++ b/keyboards/dailycraft/wings42/rev2/keymaps/via/config.h
@@ -15,6 +15,6 @@
*/
#pragma once
-#define ENCODERS_PAD_A { B5, B6 }
-#define ENCODERS_PAD_B { B4, B2 }
+#define ENCODER_A_PINS { B5, B6 }
+#define ENCODER_B_PINS { B4, B2 }
#define ENCODER_RESOLUTION 4
diff --git a/keyboards/dichotomy/keymaps/default/keymap.c b/keyboards/dichotomy/keymaps/default/keymap.c
index b83f7b82e9..b92beb73cc 100755
--- a/keyboards/dichotomy/keymaps/default/keymap.c
+++ b/keyboards/dichotomy/keymaps/default/keymap.c
@@ -28,9 +28,9 @@ enum dichotomy_keycodes
NUMKEY,
SFTKEY,
MOUKEY,
- MS_BTN1,
- MS_BTN2,
- MS_BTN3
+ CK_MSE1,
+ CK_MSE2,
+ CK_MSE3
};
#define CUSTOM_LONGPRESS 150
@@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
NUMKEY, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CK_QE,
SFTKEY, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MOUKEY,
KC_LCTL, KC_LALT, KC_LGUI, KC_RGUI, KC_RALT, KC_RCTL,
- MS_BTN3, KC_LBRC, KC_LPRN, KC_SPC, KC_SPC, KC_RPRN, KC_RBRC, MS_BTN3
+ CK_MSE3, KC_LBRC, KC_LPRN, KC_SPC, KC_SPC, KC_RPRN, KC_RBRC, CK_MSE3
),
[_SF] = LAYOUT( /* Shifted layout, small changes (because angle brackets have been moved to thumb cluster buttons) */
@@ -75,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MS] = LAYOUT( /* Mouse layer, including buttons for clicking. */
_______, _______, _______, _______, _______, _______, KC_VOLU, KC_HOME, KC_PGUP, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, MS_BTN1, MS_BTN2, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, CK_MSE1, CK_MSE2, _______, _______, _______,
_______, _______, _______, _______, _______, _______, KC_VOLD, KC_END, KC_PGDN, _______, _______, _______,
_______, _______, _______, _______, KC_UP, _______,
_______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______
@@ -311,7 +311,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break;
//mouse buttons, for 1-3, to update the mouse report:
- case MS_BTN1:
+ case CK_MSE1:
currentReport = pointing_device_get_report();
if (record->event.pressed) {
if (shift_held && shift_suspended){
@@ -327,7 +327,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
pointing_device_set_report(currentReport);
returnVal = false;
break;
- case MS_BTN2:
+ case CK_MSE2:
currentReport = pointing_device_get_report();
if (record->event.pressed) {
if (shift_held && shift_suspended){
@@ -343,7 +343,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
pointing_device_set_report(currentReport);
returnVal = false;
break;
- case MS_BTN3:
+ case CK_MSE3:
currentReport = pointing_device_get_report();
if (record->event.pressed) {
if (shift_held && shift_suspended){
diff --git a/keyboards/dnworks/9973/config.h b/keyboards/dnworks/tkl87/config.h
index 77970ce4d3..77970ce4d3 100644
--- a/keyboards/dnworks/9973/config.h
+++ b/keyboards/dnworks/tkl87/config.h
diff --git a/keyboards/dnworks/9973/keyboard.json b/keyboards/dnworks/tkl87/keyboard.json
index 6169606026..6b56435ae3 100644
--- a/keyboards/dnworks/9973/keyboard.json
+++ b/keyboards/dnworks/tkl87/keyboard.json
@@ -1,5 +1,5 @@
{
- "keyboard_name": "DN 997.3",
+ "keyboard_name": "DN TKL F12",
"maintainer": "itsme-zeix",
"manufacturer": "dnworks",
"processor": "RP2040",
diff --git a/keyboards/dnworks/9973/keymaps/default/keymap.c b/keyboards/dnworks/tkl87/keymaps/default/keymap.c
index 8307bf9e76..8307bf9e76 100644
--- a/keyboards/dnworks/9973/keymaps/default/keymap.c
+++ b/keyboards/dnworks/tkl87/keymaps/default/keymap.c
diff --git a/keyboards/dnworks/9973/keymaps/via/keymap.c b/keyboards/dnworks/tkl87/keymaps/via/keymap.c
index 8307bf9e76..8307bf9e76 100644
--- a/keyboards/dnworks/9973/keymaps/via/keymap.c
+++ b/keyboards/dnworks/tkl87/keymaps/via/keymap.c
diff --git a/keyboards/dnworks/9973/keymaps/via/rules.mk b/keyboards/dnworks/tkl87/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/dnworks/9973/keymaps/via/rules.mk
+++ b/keyboards/dnworks/tkl87/keymaps/via/rules.mk
diff --git a/keyboards/dnworks/9973/readme.md b/keyboards/dnworks/tkl87/readme.md
index 790f236cb7..121cdccddf 100644
--- a/keyboards/dnworks/9973/readme.md
+++ b/keyboards/dnworks/tkl87/readme.md
@@ -1,20 +1,20 @@
-# 997.3 TKL
+# dnworks TKL (F12)
![997.3 TKL](https://i.imgur.com/iPPLKg1h.jpeg)
-PCB that supports the 997.3 TKL designed by dnworks, including its variants.
+PCB that supports the F12 TKLs designed by dnworks.
* Keyboard Maintainer: [Zeix](https://github.com/itsme-zeix)
-* Hardware Supported: 997.3 Solder PCB rev1
-* Hardware Availability: dnworks.co
+* Hardware Supported: 997.3 Solder PCB rev1, 765LT Solder PCB rev1 and Best Friend Solder PCB Rev1.
+* Hardware Availability: https://dnworks.co/products
Make example for this keyboard (after setting up your build environment):
- make dnworks/997pt3:default
+ make dnworks/tkl87:default
Flashing example for this keyboard:
- make dnworks/997pt3:default:flash
+ make dnworks/tkl87:default: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).
@@ -22,6 +22,6 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
Enter the bootloader in 3 ways:
-* **Bootmagic reset**: Hold down the top left key and plug in the keyboard
-* **Physical reset button**: Briefly press the `RESET` button twice or short the `USB_BOOT` and `GND` pads and plug in the keyboard
+* **Bootmagic reset**: Hold down escape and plug in the keyboard
+* **Physical reset button**: Short the 'USB_BOOT' button and plug in keyboard or press the 'RESET' button twice with the keyboard plugged in.
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file
diff --git a/keyboards/doio/kb30/kb30.c b/keyboards/doio/kb30/kb30.c
index 53a4546e06..671f49e8ab 100644
--- a/keyboards/doio/kb30/kb30.c
+++ b/keyboards/doio/kb30/kb30.c
@@ -17,34 +17,6 @@
#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-
- 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, NO_LED },
- { 20, 21, 22, 23, NO_LED, 24, NO_LED},
- { 25, 26, 27, 28, 29, NO_LED, NO_LED},
- { 30, 31, 32, 33, 34, 35}
-}, {
-{0,0}, {37,0}, {75,0}, {112,0}, {149,0}, {187,0}, {224,0},
-{0,16}, {37,16}, {75,16}, {112,16}, {149,16}, {187,16}, {224,16},
-{0,32}, {37,32}, {75,32}, {112,32}, {149,32}, {187,32},
-{0,48}, {37,48}, {75,48}, {112,48}, {187,48},
-{0,64}, {37,64}, {65,64}, {112,64}, {149,64},
-{187,64}, {173,64}, {186,64}, {198,64}, {211,64},{224,64},
-}, {
- 4,4,4,4,4,4,4,
- 4,4,4,4,4,4,4,
- 4,4,4,4,4,4,
- 4,4,4,4,4,
- 4,4,4,4,4,
- 4,4,4,4,4,4
-} };
-#endif
-
/* OLED */
#ifdef OLED_ENABLE
uint16_t startup_timer = 0;
diff --git a/keyboards/doio/kb30/keyboard.json b/keyboards/doio/kb30/keyboard.json
index b14eab1c33..388df2d9e3 100644
--- a/keyboards/doio/kb30/keyboard.json
+++ b/keyboards/doio/kb30/keyboard.json
@@ -46,7 +46,50 @@
},
"driver": "ws2812",
"max_brightness": 200,
- "sleep": true
+ "sleep": true,
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+ {"matrix": [0, 1], "x": 37, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 75, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 112, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 149, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 187, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 224, "y": 0, "flags": 4},
+
+ {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
+ {"matrix": [1, 1], "x": 37, "y": 16, "flags": 4},
+ {"matrix": [1, 2], "x": 75, "y": 16, "flags": 4},
+ {"matrix": [1, 3], "x": 112, "y": 16, "flags": 4},
+ {"matrix": [1, 4], "x": 149, "y": 16, "flags": 4},
+ {"matrix": [1, 5], "x": 187, "y": 16, "flags": 4},
+ {"matrix": [1, 6], "x": 224, "y": 16, "flags": 4},
+
+ {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
+ {"matrix": [2, 1], "x": 37, "y": 32, "flags": 4},
+ {"matrix": [2, 2], "x": 75, "y": 32, "flags": 4},
+ {"matrix": [2, 3], "x": 112, "y": 32, "flags": 4},
+ {"matrix": [2, 4], "x": 149, "y": 32, "flags": 4},
+ {"matrix": [2, 5], "x": 187, "y": 32, "flags": 4},
+
+ {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4},
+ {"matrix": [3, 1], "x": 37, "y": 48, "flags": 4},
+ {"matrix": [3, 2], "x": 75, "y": 48, "flags": 4},
+ {"matrix": [3, 3], "x": 112, "y": 48, "flags": 4},
+ {"matrix": [3, 5], "x": 187, "y": 48, "flags": 4},
+
+ {"matrix": [4, 0], "x": 18, "y": 64, "flags": 4},
+ {"matrix": [4, 1], "x": 75, "y": 64, "flags": 4},
+ {"matrix": [4, 2], "x": 149, "y": 64, "flags": 4},
+ {"matrix": [4, 3], "x": 187, "y": 64, "flags": 4},
+ {"matrix": [4, 4], "x": 224, "y": 64, "flags": 4},
+
+ {"x": 224, "y": 56, "flags": 2},
+ {"x": 112, "y": 56, "flags": 2},
+ {"x": 0, "y": 56, "flags": 2},
+ {"x": 0, "y": 8, "flags": 2},
+ {"x": 112, "y": 8, "flags": 2},
+ {"x": 224, "y": 8, "flags": 2}
+ ]
},
"features": {
"bootmagic": true,
diff --git a/keyboards/doppelganger/doppelganger.c b/keyboards/doppelganger/doppelganger.c
index 4a62fdf45f..de0e2cc755 100644
--- a/keyboards/doppelganger/doppelganger.c
+++ b/keyboards/doppelganger/doppelganger.c
@@ -16,21 +16,9 @@
#include "quantum.h"
void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(C6);
gpio_set_pin_output(B0);
-}
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if (res) {
- // gpio_write_pin sets the pin high for 1 and low for 0.
- // In this example the pins are inverted, setting
- // it low/0 turns it on, and high/1 turns the LED off.
- // This behavior depends on whether the LED is between the pin
- // and VCC or the pin and GND.
- gpio_write_pin(C6, !led_state.caps_lock);
- }
- return res;
+ keyboard_pre_init_user();
}
__attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) {
diff --git a/keyboards/doppelganger/keyboard.json b/keyboards/doppelganger/keyboard.json
index 9ea2241a80..ccba77fdfa 100644
--- a/keyboards/doppelganger/keyboard.json
+++ b/keyboards/doppelganger/keyboard.json
@@ -8,6 +8,10 @@
"pid": "0x4447",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "C6",
+ "on_state": 0
+ },
"matrix_pins": {
"cols": ["F4", "F0", "B7", "B3", "B2", "B1", "D5", "D3", "D2"],
"rows": ["E6", "F1", "C7", "F7", "F6"]
diff --git a/keyboards/duck/orion/v3/keyboard.json b/keyboards/duck/orion/v3/keyboard.json
index 280cd8b07f..ba479aa0a2 100644
--- a/keyboards/duck/orion/v3/keyboard.json
+++ b/keyboards/duck/orion/v3/keyboard.json
@@ -16,6 +16,12 @@
"bootmagic": {
"matrix": [4, 10]
},
+ "indicators": {
+ "caps_lock": "B0",
+ "num_lock": "B4",
+ "scroll_lock": "D7",
+ "on_state": 0
+ },
"rgblight": {
"led_count": 18,
"animations": {
diff --git a/keyboards/duck/orion/v3/matrix.c b/keyboards/duck/orion/v3/matrix.c
index 1dd07a6567..acd4fe0349 100644
--- a/keyboards/duck/orion/v3/matrix.c
+++ b/keyboards/duck/orion/v3/matrix.c
@@ -53,20 +53,7 @@ __attribute__ ((weak))
void matrix_scan_user(void) {
}
-void indicator_init_ports(void) {
-
- // Num LED
- gpio_set_pin_output(B4);
-
- // Caps Lock
- gpio_set_pin_output(B0);
-
- // Scroll Lock
- gpio_set_pin_output(D7);
-}
-
void matrix_init(void) {
- indicator_init_ports();
unselect_cols();
init_rows();
diff --git a/keyboards/duck/orion/v3/v3.c b/keyboards/duck/orion/v3/v3.c
deleted file mode 100644
index c0ca9ddd06..0000000000
--- a/keyboards/duck/orion/v3/v3.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2019 MechMerlin <[email protected]>
- *
- * 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 "quantum.h"
-#include "indicator_leds.h"
-
-// Alphas PB1
-// Navigation Cluster: PB2
-// Number Row, Mods: PB3
-// Function Row: PE6
-
-// Other than using RGB or LED matrix, QMK cannot turn on specific zones
-// of backlight LEDs. Unfortunately, Duck PCBs do not follow this design
-// and instead use multiple pins connected to each of these zones. QMK is
-// only able to control them ALL with the current default mechanisms.
-
-// Locking indicator LEDs
-// The Duck Orion V3 has 3 locking indicator LEDs and are located to the right
-// of the Escape key.
-bool led_update_kb(led_t led_state) {
- if(led_update_user(led_state)) {
- gpio_write_pin(B0, !led_state.caps_lock);
- gpio_write_pin(B4, !led_state.num_lock);
- gpio_write_pin(D7, !led_state.scroll_lock);
- }
- return true;
-}
diff --git a/keyboards/durgod/k310/k310.c b/keyboards/durgod/k310/k310.c
index 7879b13f4e..c176587ef2 100644
--- a/keyboards/durgod/k310/k310.c
+++ b/keyboards/durgod/k310/k310.c
@@ -87,4 +87,6 @@ void keyboard_pre_init_kb(void) {
bootloader_jump();
}
#endif
+
+ keyboard_pre_init_user();
}
diff --git a/keyboards/durgod/k320/k320.c b/keyboards/durgod/k320/k320.c
index 0a544fe318..50b87d7241 100644
--- a/keyboards/durgod/k320/k320.c
+++ b/keyboards/durgod/k320/k320.c
@@ -87,4 +87,6 @@ void keyboard_pre_init_kb(void) {
bootloader_jump();
}
#endif
+
+ keyboard_pre_init_user();
}
diff --git a/keyboards/dztech/bocc/bocc.c b/keyboards/dztech/bocc/bocc.c
deleted file mode 100644
index 646a7861f8..0000000000
--- a/keyboards/dztech/bocc/bocc.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2020 dztech
- *
- * 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 "quantum.h"
-
-void matrix_init_kb(void) {
- gpio_set_pin_output(E6);
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(E6, !led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/dztech/bocc/keyboard.json b/keyboards/dztech/bocc/keyboard.json
index 7e40fde49c..a6208b2bf7 100644
--- a/keyboards/dztech/bocc/keyboard.json
+++ b/keyboards/dztech/bocc/keyboard.json
@@ -33,6 +33,10 @@
"pin": "B7",
"levels": 5
},
+ "indicators": {
+ "caps_lock": "E6",
+ "on_state": 0
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/ealdin/quadrant/keyboard.json b/keyboards/ealdin/quadrant/keyboard.json
index 9f7a6143d2..7a8bcf0db2 100644
--- a/keyboards/ealdin/quadrant/keyboard.json
+++ b/keyboards/ealdin/quadrant/keyboard.json
@@ -34,6 +34,9 @@
{"pin_a": "D5", "pin_b": "F1"}
]
},
+ "indicators": {
+ "caps_lock": "F0"
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/ealdin/quadrant/quadrant.c b/keyboards/ealdin/quadrant/quadrant.c
index 23be00b96f..328c92e02e 100644
--- a/keyboards/ealdin/quadrant/quadrant.c
+++ b/keyboards/ealdin/quadrant/quadrant.c
@@ -52,16 +52,3 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
}
return true;
}
-
-void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(F0);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if (led_update_user(led_state)) {
- gpio_write_pin(F0, led_state.caps_lock);
- }
- return true;
-}
diff --git a/keyboards/enviousdesign/commissions/mini1800/mini1800.c b/keyboards/enviousdesign/commissions/mini1800/mini1800.c
index 86757dab8a..4f4be779ca 100644
--- a/keyboards/enviousdesign/commissions/mini1800/mini1800.c
+++ b/keyboards/enviousdesign/commissions/mini1800/mini1800.c
@@ -1,23 +1,27 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
+// SPDX-License-Identifier: GPL-2.0-or-later
#include "quantum.h"
-void matrix_init_user(void) {
+void matrix_init_kb(void) {
gpio_set_pin_output(GP9); //init gpio
gpio_write_pin_low(GP9);
gpio_set_pin_output(GP11); //init and turn off inverted power led
gpio_write_pin_high(GP11);
+
+ matrix_init_user();
}
//layer, capslock and numlock
-layer_state_t layer_state_set_user(layer_state_t state) {
+__attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) {
gpio_write_pin(GP9, layer_state_cmp(state, 1));
- return state;
+ return state;
}
-bool led_update_user(led_t led_state) {
+bool led_update_kb(led_t led_state) {
+ bool res = led_update_user(led_state);
+ if(res) {
led_state.num_lock = !led_state.num_lock;
led_update_ports(led_state);
- return false;
+ }
+ return res;
}
-
diff --git a/keyboards/evyd13/gh80_3700/gh80_3700.c b/keyboards/evyd13/gh80_3700/gh80_3700.c
index 6d903e48e1..8c4c81fe64 100644
--- a/keyboards/evyd13/gh80_3700/gh80_3700.c
+++ b/keyboards/evyd13/gh80_3700/gh80_3700.c
@@ -15,24 +15,16 @@
*/
#include "quantum.h"
-void led_init_ports(void) {
- gpio_set_pin_output(E6);
+void keyboard_pre_init_kb(void) {
gpio_set_pin_output(B1);
gpio_set_pin_output(D0);
gpio_set_pin_output(D1);
gpio_set_pin_output(F0);
- gpio_write_pin_high(E6);
gpio_write_pin_high(B1);
gpio_write_pin_high(D0);
gpio_write_pin_high(D1);
gpio_write_pin_high(F0);
-}
-
-bool led_update_kb(led_t led_state) {
- if(led_update_user(led_state)) {
- gpio_write_pin(E6, !led_state.num_lock);
- }
- return true;
-} \ No newline at end of file
+ keyboard_pre_init_user();
+}
diff --git a/keyboards/evyd13/gh80_3700/keyboard.json b/keyboards/evyd13/gh80_3700/keyboard.json
index fa11a482df..a647f46118 100644
--- a/keyboards/evyd13/gh80_3700/keyboard.json
+++ b/keyboards/evyd13/gh80_3700/keyboard.json
@@ -23,6 +23,10 @@
"resync": true
}
},
+ "indicators": {
+ "num_lock": "E6",
+ "on_state": 0
+ },
"matrix_pins": {
"cols": ["B0", "D7", "D6", "D4"],
"rows": ["B3", "C7", "C6", "B6", "B5", "B4"]
diff --git a/keyboards/evyd13/gud70/gud70.c b/keyboards/evyd13/gud70/gud70.c
index 5c40045521..118c68e566 100644
--- a/keyboards/evyd13/gud70/gud70.c
+++ b/keyboards/evyd13/gud70/gud70.c
@@ -19,4 +19,6 @@ void keyboard_pre_init_kb(void) {
// Enable top LED
gpio_set_pin_output(B3);
gpio_write_pin_low(B3);
+
+ keyboard_pre_init_user();
}
diff --git a/keyboards/exclusive/e6_rgb/e6_rgb.c b/keyboards/exclusive/e6_rgb/e6_rgb.c
index 19dd96a073..9a7856306b 100644
--- a/keyboards/exclusive/e6_rgb/e6_rgb.c
+++ b/keyboards/exclusive/e6_rgb/e6_rgb.c
@@ -168,6 +168,10 @@ led_config_t g_led_config = { {
#endif
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ if (!process_record_user(keycode, record)) {
+ return false;
+ }
+
if (record->event.pressed) {
switch(keycode) {
#if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE)
diff --git a/keyboards/exclusive/e85/hotswap/hotswap.c b/keyboards/exclusive/e85/hotswap/hotswap.c
deleted file mode 100644
index 18ca30b44c..0000000000
--- a/keyboards/exclusive/e85/hotswap/hotswap.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright 2020 MechMerlin
- *
- * 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 "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(C7);
- gpio_set_pin_output(B5);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if (led_update_user(led_state)) {
- gpio_write_pin(C7, led_state.caps_lock);
- gpio_write_pin(B5, led_state.scroll_lock);
- }
- return true;
-}
diff --git a/keyboards/exclusive/e85/hotswap/keyboard.json b/keyboards/exclusive/e85/hotswap/keyboard.json
index 4bd8e73882..7fcd61c843 100644
--- a/keyboards/exclusive/e85/hotswap/keyboard.json
+++ b/keyboards/exclusive/e85/hotswap/keyboard.json
@@ -18,6 +18,10 @@
"levels": 6,
"breathing": true
},
+ "indicators": {
+ "caps_lock": "C7",
+ "scroll_lock": "B5"
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/exclusive/e85/soldered/keyboard.json b/keyboards/exclusive/e85/soldered/keyboard.json
index 8b4ebbfc57..dfd6d18826 100644
--- a/keyboards/exclusive/e85/soldered/keyboard.json
+++ b/keyboards/exclusive/e85/soldered/keyboard.json
@@ -18,6 +18,10 @@
"levels": 6,
"breathing": true
},
+ "indicators": {
+ "caps_lock": "C7",
+ "scroll_lock": "B5"
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/exclusive/e85/soldered/soldered.c b/keyboards/exclusive/e85/soldered/soldered.c
deleted file mode 100644
index bdee95c26c..0000000000
--- a/keyboards/exclusive/e85/soldered/soldered.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright 2020 VashtaNerada
- *
- * 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 "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(C7);
- gpio_set_pin_output(B5);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if (led_update_user(led_state)) {
- gpio_write_pin(C7, led_state.caps_lock);
- gpio_write_pin(B5, led_state.scroll_lock);
- }
- return true;
-}
diff --git a/keyboards/fjlabs/bolsa65/bolsa65.c b/keyboards/fjlabs/bolsa65/bolsa65.c
deleted file mode 100644
index 669404192c..0000000000
--- a/keyboards/fjlabs/bolsa65/bolsa65.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-Copyright 2020 <[email protected]>
-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 "quantum.h"
-
-void matrix_init_kb(void) {
- // Initialize indicator LEDs to output
- gpio_set_pin_output(F7); // Caps
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(F7, led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/fjlabs/bolsa65/keyboard.json b/keyboards/fjlabs/bolsa65/keyboard.json
index dfa47e90bb..63281ae9f6 100644
--- a/keyboards/fjlabs/bolsa65/keyboard.json
+++ b/keyboards/fjlabs/bolsa65/keyboard.json
@@ -8,6 +8,9 @@
"pid": "0x0001",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "F7"
+ },
"matrix_pins": {
"cols": ["C7", "B1", "B2", "B3", "B7", "D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5"],
"rows": ["F1", "F0", "F6", "F5", "F4"]
diff --git a/keyboards/flx/virgo/keyboard.json b/keyboards/flx/virgo/keyboard.json
index 8396ce51da..996425282d 100644
--- a/keyboards/flx/virgo/keyboard.json
+++ b/keyboards/flx/virgo/keyboard.json
@@ -30,6 +30,11 @@
"pin": "B7",
"levels": 5
},
+ "indicators": {
+ "caps_lock": "E6",
+ "scroll_lock": "B2",
+ "on_state": 0
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/flx/virgo/virgo.c b/keyboards/flx/virgo/virgo.c
deleted file mode 100644
index 2f875531d0..0000000000
--- a/keyboards/flx/virgo/virgo.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2019 MechMerlin
- * Edits etc 2020 Flexerm
- *
- * 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 "quantum.h"
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
-
- gpio_set_pin_output(E6);
- gpio_set_pin_output(B2);
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if(led_update_user(led_state)) {
- gpio_write_pin(E6, !led_state.caps_lock);
- gpio_write_pin(B2, !led_state.scroll_lock);
- }
- return true;
-}
diff --git a/keyboards/ghs/rar/keyboard.json b/keyboards/ghs/rar/keyboard.json
index 22b133c8f9..96184abe6a 100644
--- a/keyboards/ghs/rar/keyboard.json
+++ b/keyboards/ghs/rar/keyboard.json
@@ -8,6 +8,10 @@
"pid": "0x0001",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "B1",
+ "scroll_lock": "B3"
+ },
"rgblight": {
"led_count": 17,
"animations": {
diff --git a/keyboards/ghs/rar/rar.c b/keyboards/ghs/rar/rar.c
deleted file mode 100644
index 591932c99c..0000000000
--- a/keyboards/ghs/rar/rar.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2020 Gone Hacking Studio
- *
- * 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 "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- // Set our LED pins as output.
- gpio_set_pin_output(B1);
- gpio_set_pin_output(B3);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
-
- if (res) {
- gpio_write_pin(B1, led_state.caps_lock);
- gpio_write_pin(B3, led_state.scroll_lock);
- }
-
- return res;
-}
diff --git a/keyboards/gray_studio/think65/solder/keyboard.json b/keyboards/gray_studio/think65/solder/keyboard.json
index 9706e8b4b4..09096a854e 100644
--- a/keyboards/gray_studio/think65/solder/keyboard.json
+++ b/keyboards/gray_studio/think65/solder/keyboard.json
@@ -41,6 +41,10 @@
"nkro": false,
"rgblight": true
},
+ "indicators": {
+ "caps_lock": "C7",
+ "on_state": 0
+ },
"matrix_pins": {
"cols": ["D1", "D0", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "F0", "F1", "B6", "F4", "F5", "F6"],
"rows": ["B0", "B1", "B2", "B3", "E6"]
diff --git a/keyboards/gray_studio/think65/solder/solder.c b/keyboards/gray_studio/think65/solder/solder.c
deleted file mode 100644
index 84267b9db0..0000000000
--- a/keyboards/gray_studio/think65/solder/solder.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2019 MechMerlin
- *
- * 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 "quantum.h"
-
-// Optional override functions below.
-// You can leave any or all of these undefined.
-// These are only required if you want to perform custom actions.
-
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
-
- gpio_set_pin_output(C7);
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if(led_update_user(led_state)) {
- gpio_write_pin(C7, !led_state.caps_lock);
- }
- return true;
-}
diff --git a/keyboards/handwired/aek64/aek64.c b/keyboards/handwired/aek64/aek64.c
index 130d014616..21589b6910 100644
--- a/keyboards/handwired/aek64/aek64.c
+++ b/keyboards/handwired/aek64/aek64.c
@@ -16,21 +16,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "quantum.h"
-/*
- * Hardware function pre initialisation.
- * See https://docs.qmk.fm/#/custom_quantum_functions?id=example-keyboard_pre_init_user-implementation
- */
-void keyboard_pre_init_user(void) {
- // Call the keyboard pre init code.
-
+void keyboard_pre_init_kb(void) {
// Set our LED pins as output
gpio_set_pin_output(C3);
+
+ keyboard_pre_init_user();
}
void matrix_init_kb(void) {
-
// Flash the led 1 sec on startup.
gpio_write_pin_high(C3);
wait_ms(1000);
gpio_write_pin_low(C3);
+
+ matrix_init_user();
}
diff --git a/keyboards/handwired/battleship_gamepad/battleship_gamepad.c b/keyboards/handwired/battleship_gamepad/battleship_gamepad.c
index cccc03a287..6bfcb17fd4 100644
--- a/keyboards/handwired/battleship_gamepad/battleship_gamepad.c
+++ b/keyboards/handwired/battleship_gamepad/battleship_gamepad.c
@@ -16,13 +16,9 @@
#include "quantum.h"
-/* joystick config */
-joystick_config_t joystick_axes[JOYSTICK_AXIS_COUNT] = {
- [0] = JOYSTICK_AXIS_IN(F5, 1023, 512, 0),
- [1] = JOYSTICK_AXIS_IN(F4, 0, 512, 1023)
-};
-
/* joystick button code (thumbstick pressed) */
void keyboard_pre_init_kb(void) {
gpio_set_pin_input_high(F6);
+
+ keyboard_pre_init_user();
}
diff --git a/keyboards/handwired/battleship_gamepad/config.h b/keyboards/handwired/battleship_gamepad/config.h
deleted file mode 100644
index b785c80aad..0000000000
--- a/keyboards/handwired/battleship_gamepad/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2021 Andrew Braini
- *
- * 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
-
-/* joystick configuration */
-#define JOYSTICK_BUTTON_COUNT 25
-#define JOYSTICK_AXIS_RESOLUTION 10
diff --git a/keyboards/handwired/battleship_gamepad/keyboard.json b/keyboards/handwired/battleship_gamepad/keyboard.json
index 2832741875..8350f31fdd 100644
--- a/keyboards/handwired/battleship_gamepad/keyboard.json
+++ b/keyboards/handwired/battleship_gamepad/keyboard.json
@@ -13,6 +13,14 @@
"rows": ["B6", "B2", "B3", "B1", "F7"]
},
"diode_direction": "COL2ROW",
+ "joystick": {
+ "button_count": 25,
+ "axis_resolution": 10,
+ "axes": {
+ "x": {"input_pin": "F5", "low": 1023, "rest": 512, "high": 0},
+ "y": {"input_pin": "F4", "low": 0, "rest": 512, "high": 1023}
+ }
+ },
"processor": "atmega32u4",
"bootloader": "caterina",
"features": {
diff --git a/keyboards/handwired/battleship_gamepad/rules.mk b/keyboards/handwired/battleship_gamepad/rules.mk
deleted file mode 100644
index c5ab560bca..0000000000
--- a/keyboards/handwired/battleship_gamepad/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-JOYSTICK_DRIVER = analog
diff --git a/keyboards/handwired/colorlice/colorlice.c b/keyboards/handwired/colorlice/colorlice.c
index ede3fba82f..92914b79bc 100644
--- a/keyboards/handwired/colorlice/colorlice.c
+++ b/keyboards/handwired/colorlice/colorlice.c
@@ -51,18 +51,3 @@ void suspend_wakeup_init_kb(void)
suspend_wakeup_init_user();
}
#endif
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- // gpio_write_pin sets the pin high for 1 and low for 0.
- // In this example the pins are inverted, setting
- // it low/0 turns it on, and high/1 turns the LED off.
- // This behavior depends on whether the LED is between the pin
- // and VCC or the pin and GND.
- gpio_write_pin(B2, !led_state.num_lock);
- gpio_write_pin(C6, !led_state.caps_lock);
- gpio_write_pin(B7, !led_state.scroll_lock);
- }
- return res;
-}
diff --git a/keyboards/handwired/colorlice/keyboard.json b/keyboards/handwired/colorlice/keyboard.json
index 77f5ded097..4ccc10527c 100644
--- a/keyboards/handwired/colorlice/keyboard.json
+++ b/keyboards/handwired/colorlice/keyboard.json
@@ -65,6 +65,12 @@
"build": {
"lto": true
},
+ "indicators": {
+ "caps_lock": "C6",
+ "num_lock": "B2",
+ "scroll_lock": "B7",
+ "on_state": 0
+ },
"features": {
"bootmagic": true,
"command": false,
diff --git a/keyboards/handwired/evk/v1_3/v1_3.c b/keyboards/handwired/evk/v1_3/v1_3.c
index a568ba3f86..575bf33759 100644
--- a/keyboards/handwired/evk/v1_3/v1_3.c
+++ b/keyboards/handwired/evk/v1_3/v1_3.c
@@ -33,12 +33,3 @@ __attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) {
gpio_write_pin(D5, layer_state_cmp(state, 1));
return state;
}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if (res) {
- // gpio_write_pin sets the pin high for 1 and low for 0.
- gpio_write_pin(D4, led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/handwired/jtallbean/split_65/keyboard.json b/keyboards/handwired/jtallbean/split_65/keyboard.json
index c8be82da8d..b6560fb03a 100644
--- a/keyboards/handwired/jtallbean/split_65/keyboard.json
+++ b/keyboards/handwired/jtallbean/split_65/keyboard.json
@@ -27,6 +27,9 @@
"rows": ["F4", "F1", "F0", "C7", "B6"]
},
"diode_direction": "COL2ROW",
+ "indicators": {
+ "caps_lock": "B0"
+ },
"split": {
"enabled": true,
"soft_serial_pin": "D0",
diff --git a/keyboards/handwired/jtallbean/split_65/split_65.c b/keyboards/handwired/jtallbean/split_65/split_65.c
deleted file mode 100644
index b75b12137f..0000000000
--- a/keyboards/handwired/jtallbean/split_65/split_65.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright 2020 jtallbean
- *
- * 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 "quantum.h"
-
-// Optional override functions below.
-// You can leave any or all of these undefined.
-// These are only required if you want to perform custom actions.
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
-
- // Set our LED pins as output
- gpio_set_pin_output(B0);
- gpio_write_pin_low(B0);
-
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
-
- bool res = led_update_user(led_state);
- if(res) {
- // gpio_write_pin sets the pin high for 1 and low for 0.
- gpio_write_pin(B0, led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/handwired/prime_exl_plus/keyboard.json b/keyboards/handwired/prime_exl_plus/keyboard.json
index 43825a0ad8..a234bceb02 100644
--- a/keyboards/handwired/prime_exl_plus/keyboard.json
+++ b/keyboards/handwired/prime_exl_plus/keyboard.json
@@ -8,6 +8,10 @@
"pid": "0x6579",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "B0",
+ "num_lock": "B1"
+ },
"rgblight": {
"led_count": 10,
"animations": {
diff --git a/keyboards/handwired/prime_exl_plus/prime_exl_plus.c b/keyboards/handwired/prime_exl_plus/prime_exl_plus.c
index 1865b6c502..164c954b8b 100644
--- a/keyboards/handwired/prime_exl_plus/prime_exl_plus.c
+++ b/keyboards/handwired/prime_exl_plus/prime_exl_plus.c
@@ -16,32 +16,17 @@
#include "quantum.h"
void matrix_init_kb(void) {
- // set CapsLock LED to output and low
- gpio_set_pin_output(B0);
- gpio_write_pin_low(B0);
- // set NumLock LED to output and low
- gpio_set_pin_output(B1);
- gpio_write_pin_low(B1);
- // set ScrollLock LED to output and low
gpio_set_pin_output(B2);
gpio_write_pin_low(B2);
-}
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(B1, led_state.num_lock);
- gpio_write_pin(B0, led_state.caps_lock);
- //gpio_write_pin(B2, led_state.scroll_lock);
- }
- return res;
+ matrix_init_user();
}
//function for layer indicator LED
layer_state_t layer_state_set_kb(layer_state_t state)
{
if (get_highest_layer(state) == 1) {
- gpio_write_pin_high(B2);
+ gpio_write_pin_high(B2);
} else {
gpio_write_pin_low(B2);
}
diff --git a/keyboards/handwired/retro_refit/keyboard.json b/keyboards/handwired/retro_refit/keyboard.json
index 1e7812d578..7acdb48b44 100644
--- a/keyboards/handwired/retro_refit/keyboard.json
+++ b/keyboards/handwired/retro_refit/keyboard.json
@@ -23,6 +23,12 @@
"resync": true
}
},
+ "indicators": {
+ "caps_lock": "D0",
+ "num_lock": "D1",
+ "scroll_lock": "C6",
+ "on_state": 0
+ },
"matrix_pins": {
"cols": ["B0", "B1", "B2", "B3", "D2", "D3", "C7", "D5"],
"rows": ["D4", "D7", "B4", "B5", "B6", "F7", "F6", "F5", "F4", "F1", "F0"]
diff --git a/keyboards/handwired/retro_refit/retro_refit.c b/keyboards/handwired/retro_refit/retro_refit.c
index b62d94d741..08e8e1d528 100644
--- a/keyboards/handwired/retro_refit/retro_refit.c
+++ b/keyboards/handwired/retro_refit/retro_refit.c
@@ -1,5 +1,4 @@
#include "quantum.h"
-#include "led.h"
void matrix_init_kb(void) {
// put your keyboard start-up code here
@@ -11,14 +10,3 @@ void matrix_init_kb(void) {
matrix_init_user();
};
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(D0, !led_state.caps_lock);
- gpio_write_pin(D1, !led_state.num_lock);
- gpio_write_pin(C6, !led_state.scroll_lock);
-
- }
- return res;
-} \ No newline at end of file
diff --git a/keyboards/handwired/selene/keyboard.json b/keyboards/handwired/selene/keyboard.json
index 592b51aaf4..34eec11664 100644
--- a/keyboards/handwired/selene/keyboard.json
+++ b/keyboards/handwired/selene/keyboard.json
@@ -8,6 +8,11 @@
"pid": "0x0001",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "A2",
+ "num_lock": "A0",
+ "scroll_lock": "A1"
+ },
"rgblight": {
"led_count": 50
},
diff --git a/keyboards/handwired/selene/selene.c b/keyboards/handwired/selene/selene.c
index b0924c06f4..49df43314b 100644
--- a/keyboards/handwired/selene/selene.c
+++ b/keyboards/handwired/selene/selene.c
@@ -15,24 +15,10 @@
*/
-#include "selene.h"
+#include "quantum.h"
-void matrix_init_kb(void){
- gpio_set_pin_output(NUM_LOCK_PIN);
- gpio_set_pin_output(CAPS_LOCK_PIN);
- gpio_set_pin_output(SCROLL_LOCK_PIN);
-}
-
-void keyboard_post_init_user(void) {
+void keyboard_post_init_kb(void) {
rgblight_setrgb(0xff, 0xff, 0xff);
-}
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(NUM_LOCK_PIN, led_state.num_lock);
- gpio_write_pin(CAPS_LOCK_PIN, led_state.caps_lock);
- gpio_write_pin(SCROLL_LOCK_PIN, led_state.scroll_lock);
- }
- return res;
+ keyboard_post_init_user();
}
diff --git a/keyboards/handwired/selene/selene.h b/keyboards/handwired/selene/selene.h
deleted file mode 100644
index bcd4215e36..0000000000
--- a/keyboards/handwired/selene/selene.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2020 Bpendragon
- *
- * 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 "quantum.h"
-
-#define NUM_LOCK_PIN A0
-#define CAPS_LOCK_PIN A2
-#define SCROLL_LOCK_PIN A1
diff --git a/keyboards/handwired/sick68/keymaps/via/config.h b/keyboards/handwired/sick68/keymaps/via/config.h
index 4ce1e3e785..bf6fd3ea4f 100644
--- a/keyboards/handwired/sick68/keymaps/via/config.h
+++ b/keyboards/handwired/sick68/keymaps/via/config.h
@@ -15,6 +15,6 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#define ENCODERS_PAD_A { F0 }
-#define ENCODERS_PAD_B { F1 }
+#define ENCODER_A_PINS { F0 }
+#define ENCODER_B_PINS { F1 }
#define ENCODER_RESOLUTION 4
diff --git a/keyboards/handwired/z150/keyboard.json b/keyboards/handwired/z150/keyboard.json
index 0658bb5233..38c92a6537 100644
--- a/keyboards/handwired/z150/keyboard.json
+++ b/keyboards/handwired/z150/keyboard.json
@@ -16,6 +16,12 @@
"mousekey": true,
"nkro": false
},
+ "indicators": {
+ "caps_lock": "B3",
+ "num_lock": "B5",
+ "scroll_lock": "B4",
+ "on_state": 0
+ },
"matrix_pins": {
"cols": ["B11", "B10", "B1", "B0", "A7", "A6", "A5", "A4"],
"rows": ["B13", "B14", "B15", "A8", "A9", "A3", "A10", "A1", "A2", "A15", "A0"]
diff --git a/keyboards/handwired/z150/z150.c b/keyboards/handwired/z150/z150.c
deleted file mode 100644
index ab6709eed7..0000000000
--- a/keyboards/handwired/z150/z150.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2020 DmNosachev
- *
- * 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 "quantum.h"
-
-void matrix_init_kb(void) {
- gpio_set_pin_output(NUM_LOCK_LED_PIN);
- gpio_set_pin_output(CAPS_LOCK_LED_PIN);
- gpio_set_pin_output(SCROLL_LOCK_LED_PIN);
-
- gpio_write_pin_low(NUM_LOCK_LED_PIN);
- gpio_write_pin_low(CAPS_LOCK_LED_PIN);
- gpio_write_pin_low(SCROLL_LOCK_LED_PIN);
-
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(NUM_LOCK_LED_PIN, !led_state.num_lock);
- gpio_write_pin(CAPS_LOCK_LED_PIN, !led_state.caps_lock);
- gpio_write_pin(SCROLL_LOCK_LED_PIN, !led_state.scroll_lock);
- }
- return res;
-}
diff --git a/keyboards/heliar/wm1_hotswap/keyboard.json b/keyboards/heliar/wm1_hotswap/keyboard.json
index 3fa1a8e6cb..789a3c7d2b 100644
--- a/keyboards/heliar/wm1_hotswap/keyboard.json
+++ b/keyboards/heliar/wm1_hotswap/keyboard.json
@@ -25,6 +25,12 @@
"backlight": {
"pin": "B7"
},
+ "indicators": {
+ "caps_lock": "D6",
+ "num_lock": "D7",
+ "scroll_lock": "D4",
+ "on_state": 0
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layouts": {
diff --git a/keyboards/heliar/wm1_hotswap/wm1_hotswap.c b/keyboards/heliar/wm1_hotswap/wm1_hotswap.c
deleted file mode 100644
index d2d10b0b1f..0000000000
--- a/keyboards/heliar/wm1_hotswap/wm1_hotswap.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2019 HELIAR MK
- *
- * 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 "quantum.h"
-
-
-void keyboard_pre_init_kb(void)
-{
- gpio_set_pin_output(D7);
- gpio_write_pin_high(D7);
- gpio_set_pin_output(D6);
- gpio_write_pin_high(D6);
- gpio_set_pin_output(D4);
- gpio_write_pin_high(D4);
-}
-
-bool led_update_kb(led_t led_state) {
-
- if (led_update_user(led_state)){
- gpio_write_pin(D7, !led_state.num_lock);
- gpio_write_pin(D6, !led_state.caps_lock);
- gpio_write_pin(D4, !led_state.scroll_lock);
- }
-
- return true;
-}
diff --git a/keyboards/hineybush/h10/h10.c b/keyboards/hineybush/h10/h10.c
deleted file mode 100644
index 2170a8b2d7..0000000000
--- a/keyboards/hineybush/h10/h10.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2020 hineybush
- *
- * 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 "quantum.h"
-
-// Optional override functions below.
-// You can leave any or all of these undefined.
-// These are only required if you want to perform custom actions.
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
- gpio_set_pin_output(F7);
-}
-
-bool led_update_kb(led_t led_state) {
- if(led_update_user(led_state)) {
- gpio_write_pin(F7, !led_state.num_lock);
- }
- return true;
-}
diff --git a/keyboards/hineybush/h10/keyboard.json b/keyboards/hineybush/h10/keyboard.json
index 73205f85ff..63a109f484 100644
--- a/keyboards/hineybush/h10/keyboard.json
+++ b/keyboards/hineybush/h10/keyboard.json
@@ -32,6 +32,10 @@
"pin": "B7",
"breathing": true
},
+ "indicators": {
+ "caps_lock": "F7",
+ "on_state": 0
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": ["ortho_6x4", "numpad_6x4"],
diff --git a/keyboards/hineybush/h60/h60.c b/keyboards/hineybush/h60/h60.c
deleted file mode 100644
index 472b99d8ba..0000000000
--- a/keyboards/hineybush/h60/h60.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2020 hineybush
- *
- * 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 "quantum.h"
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
- gpio_set_pin_output(C6);
-}
-
-bool led_update_kb(led_t led_state) {
- if(led_update_user(led_state)) {
- gpio_write_pin(C6, !led_state.caps_lock);
- }
- return true;
-}
-
diff --git a/keyboards/hineybush/h60/keyboard.json b/keyboards/hineybush/h60/keyboard.json
index 8a019d42da..ea058b6d64 100644
--- a/keyboards/hineybush/h60/keyboard.json
+++ b/keyboards/hineybush/h60/keyboard.json
@@ -34,6 +34,10 @@
"pin": "B7",
"levels": 12
},
+ "indicators": {
+ "caps_lock": "C6",
+ "on_state": 0
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/hineybush/h87a/h87a.c b/keyboards/hineybush/h87a/h87a.c
index f2d0c62813..8c10b68ca0 100644
--- a/keyboards/hineybush/h87a/h87a.c
+++ b/keyboards/hineybush/h87a/h87a.c
@@ -15,22 +15,6 @@
*/
#include "quantum.h"
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
- gpio_set_pin_output(D5);
- gpio_set_pin_output(E6);
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if(led_update_user(led_state)) {
- gpio_write_pin(D5, !led_state.caps_lock);
- gpio_write_pin(E6, !led_state.scroll_lock);
- }
- return true;
-}
-
void eeconfig_init_kb(void) { // EEPROM is getting reset!
rgblight_enable(); // Enable RGB by default
rgblight_sethsv(0, 255, 128); // Set default HSV - red hue, full saturation, medium brightness
diff --git a/keyboards/hineybush/h87a/keyboard.json b/keyboards/hineybush/h87a/keyboard.json
index e9096201d9..987d1a60fd 100644
--- a/keyboards/hineybush/h87a/keyboard.json
+++ b/keyboards/hineybush/h87a/keyboard.json
@@ -35,6 +35,11 @@
"backlight": {
"pin": "B7"
},
+ "indicators": {
+ "caps_lock": "D5",
+ "scroll_lock": "E6",
+ "on_state": 0
+ },
"ws2812": {
"pin": "D3"
},
diff --git a/keyboards/hineybush/h88/h88.c b/keyboards/hineybush/h88/h88.c
index a916609d75..7c63446751 100644
--- a/keyboards/hineybush/h88/h88.c
+++ b/keyboards/hineybush/h88/h88.c
@@ -15,22 +15,6 @@
*/
#include "quantum.h"
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
- gpio_set_pin_output(D5);
- gpio_set_pin_output(E6);
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if(led_update_user(led_state)) {
- gpio_write_pin(D5, !led_state.caps_lock);
- gpio_write_pin(E6, !led_state.scroll_lock);
- }
- return true;
-}
-
void eeconfig_init_kb(void) { // EEPROM is getting reset!
rgblight_enable(); // Enable RGB by default
rgblight_sethsv(0, 255, 128); // Set default HSV - red hue, full saturation, medium brightness
diff --git a/keyboards/hineybush/h88/keyboard.json b/keyboards/hineybush/h88/keyboard.json
index e74a3f3623..b1bb842303 100644
--- a/keyboards/hineybush/h88/keyboard.json
+++ b/keyboards/hineybush/h88/keyboard.json
@@ -35,6 +35,11 @@
"backlight": {
"pin": "B7"
},
+ "indicators": {
+ "caps_lock": "D5",
+ "scroll_lock": "E6",
+ "on_state": 0
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/hineybush/physix/keyboard.json b/keyboards/hineybush/physix/keyboard.json
index b7b1c05393..79a0bea7ab 100644
--- a/keyboards/hineybush/physix/keyboard.json
+++ b/keyboards/hineybush/physix/keyboard.json
@@ -33,6 +33,10 @@
"pin": "B7",
"breathing": true
},
+ "indicators": {
+ "caps_lock": "D3",
+ "scroll_lock": "D5"
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/hineybush/physix/physix.c b/keyboards/hineybush/physix/physix.c
deleted file mode 100644
index cd920a72b3..0000000000
--- a/keyboards/hineybush/physix/physix.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright 2019 hineybush
- *
- * 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 "quantum.h"
-
-// Optional override functions below.
-// You can leave any or all of these undefined.
-// These are only required if you want to perform custom actions.
-
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
- gpio_set_pin_output(D3);
- gpio_set_pin_output(D5);
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
- bool res = led_update_user(led_state);
- if(res) {
- // gpio_write_pin sets the pin high for 1 and low for 0.
- // In this example the pins are inverted, setting
- // it low/0 turns it on, and high/1 turns the LED off.
- // This behavior depends on whether the LED is between the pin
- // and VCC or the pin and GND.
- gpio_write_pin(D3, led_state.caps_lock);
- gpio_write_pin(D5, led_state.scroll_lock);
- }
- return res;
- return led_update_user(led_state);
-}
-
-
-
diff --git a/keyboards/ibm/model_m/ashpil_usbc/ashpil_usbc.c b/keyboards/ibm/model_m/ashpil_usbc/ashpil_usbc.c
deleted file mode 100644
index 8bdcfe070a..0000000000
--- a/keyboards/ibm/model_m/ashpil_usbc/ashpil_usbc.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2019 ashpil
- *
- * 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 "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- /* Setting status LEDs pins to output and +5V (off) */
- gpio_set_pin_output(D5);
- gpio_set_pin_output(D6);
- gpio_set_pin_output(D7);
- gpio_write_pin_high(D5);
- gpio_write_pin_high(D6);
- gpio_write_pin_high(D7);
-}
-
-bool led_update_kb(led_t led_state) {
- if(led_update_user(led_state)) {
- gpio_write_pin(D5, !led_state.num_lock);
- gpio_write_pin(D6, !led_state.caps_lock);
- gpio_write_pin(D7, !led_state.scroll_lock);
- }
- return true;
-}
diff --git a/keyboards/ibm/model_m/ashpil_usbc/keyboard.json b/keyboards/ibm/model_m/ashpil_usbc/keyboard.json
index 451589017e..a43e16a04c 100644
--- a/keyboards/ibm/model_m/ashpil_usbc/keyboard.json
+++ b/keyboards/ibm/model_m/ashpil_usbc/keyboard.json
@@ -16,6 +16,12 @@
"mousekey": false,
"nkro": false
},
+ "indicators": {
+ "caps_lock": "D6",
+ "num_lock": "D5",
+ "scroll_lock": "D7",
+ "on_state": 0
+ },
"matrix_pins": {
"cols": ["E6", "E7", "F0", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "A0", "A1", "A2", "A3", "A4", "A5"],
"rows": ["C7", "C6", "C5", "C4", "C3", "C2", "C1", "C0"]
diff --git a/keyboards/ibm/model_m/mschwingen/mschwingen.c b/keyboards/ibm/model_m/mschwingen/mschwingen.c
index 7112ab63a5..11407d1206 100644
--- a/keyboards/ibm/model_m/mschwingen/mschwingen.c
+++ b/keyboards/ibm/model_m/mschwingen/mschwingen.c
@@ -114,6 +114,8 @@ void keyboard_pre_init_kb(void) {
gpio_set_pin_output(SR_CLK_PIN);
gpio_set_pin_output(SR_DOUT_PIN); // MOSI - unused
gpio_write_pin_low(SR_CLK_PIN);
+
+ keyboard_pre_init_user();
}
#ifdef KEYBOARD_ibm_model_m_mschwingen_led_ws2812
diff --git a/keyboards/ibm/model_m/teensypp/keyboard.json b/keyboards/ibm/model_m/teensypp/keyboard.json
index 4464a299f6..e77c43483b 100644
--- a/keyboards/ibm/model_m/teensypp/keyboard.json
+++ b/keyboards/ibm/model_m/teensypp/keyboard.json
@@ -8,6 +8,12 @@
"pid": "0x0000",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "B6",
+ "num_lock": "B4",
+ "scroll_lock": "B5",
+ "on_state": 0
+ },
"matrix_pins": {
"cols": ["C7", "C6", "C5", "C4", "C3", "C2", "C1", "C0", "E1", "E0", "D7", "D6", "D5", "D4", "D3", "D2"],
"rows": ["F7", "F6", "F5", "F4", "F3", "F2", "F1", "F0"]
diff --git a/keyboards/ibm/model_m/teensypp/teensypp.c b/keyboards/ibm/model_m/teensypp/teensypp.c
deleted file mode 100644
index aac85424bf..0000000000
--- a/keyboards/ibm/model_m/teensypp/teensypp.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2019 iw0rm3r
- *
- * 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 "quantum.h"
-
-void led_init_ports(void) {
- /* Setting status LEDs pins to output and +5V (off) */
- gpio_set_pin_output(B4);
- gpio_set_pin_output(B5);
- gpio_set_pin_output(B6);
- gpio_write_pin_high(B4);
- gpio_write_pin_high(B5);
- gpio_write_pin_high(B6);
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(B4, !led_state.num_lock);
- gpio_write_pin(B6, !led_state.caps_lock);
- gpio_write_pin(B5, !led_state.scroll_lock);
- }
- return res;
-}
diff --git a/keyboards/ibm/model_m/yugo_m/keyboard.json b/keyboards/ibm/model_m/yugo_m/keyboard.json
index 968c637b78..10fe637f03 100644
--- a/keyboards/ibm/model_m/yugo_m/keyboard.json
+++ b/keyboards/ibm/model_m/yugo_m/keyboard.json
@@ -16,6 +16,12 @@
"mousekey": true,
"nkro": false
},
+ "indicators": {
+ "caps_lock": "A1",
+ "num_lock": "A2",
+ "scroll_lock": "A0",
+ "on_state": 0
+ },
"matrix_pins": {
"cols": ["A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3"],
"rows": ["B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"]
diff --git a/keyboards/ibm/model_m/yugo_m/yugo_m.c b/keyboards/ibm/model_m/yugo_m/yugo_m.c
deleted file mode 100644
index a725a3657b..0000000000
--- a/keyboards/ibm/model_m/yugo_m/yugo_m.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2020 Nidzo Tomic <[email protected]>
- *
- * 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 "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- // Set our LED pins as output
- gpio_set_pin_output(A2);
- gpio_set_pin_output(A1);
- gpio_set_pin_output(A0);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(A2, !led_state.num_lock);
- gpio_write_pin(A1, !led_state.caps_lock);
- gpio_write_pin(A0, !led_state.scroll_lock);
- }
- return res;
-}
diff --git a/keyboards/idb/idb_60/idb_60.c b/keyboards/idb/idb_60/idb_60.c
index 77485a4273..183892f363 100644
--- a/keyboards/idb/idb_60/idb_60.c
+++ b/keyboards/idb/idb_60/idb_60.c
@@ -3,6 +3,8 @@
void keyboard_pre_init_kb(void) {
gpio_set_pin_output(C4);
gpio_set_pin_output(C5);
+
+ keyboard_pre_init_user();
}
inline void _idb_60_caps_led_on(void) {
diff --git a/keyboards/ilumkb/volcano660/keyboard.json b/keyboards/ilumkb/volcano660/keyboard.json
index 297b28a5f9..fa74e46fed 100644
--- a/keyboards/ilumkb/volcano660/keyboard.json
+++ b/keyboards/ilumkb/volcano660/keyboard.json
@@ -32,6 +32,12 @@
"pin": "B7",
"levels": 5
},
+ "indicators": {
+ "caps_lock": "D2",
+ "num_lock": "D0",
+ "scroll_lock": "D1",
+ "on_state": 0
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": [
diff --git a/keyboards/ilumkb/volcano660/volcano660.c b/keyboards/ilumkb/volcano660/volcano660.c
deleted file mode 100644
index 5e6d67c9ba..0000000000
--- a/keyboards/ilumkb/volcano660/volcano660.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2020 dztech
- *
- * 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 "quantum.h"
-
-void matrix_init_kb(void) {
- gpio_set_pin_output(D0);
- gpio_set_pin_output(D1);
- gpio_set_pin_output(D2);
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(D0, !led_state.num_lock);
- gpio_write_pin(D2, !led_state.caps_lock);
- gpio_write_pin(D1, !led_state.scroll_lock);
-
- }
- return res;
-}
diff --git a/keyboards/inett_studio/sqx/hotswap/hotswap.c b/keyboards/inett_studio/sqx/hotswap/hotswap.c
index 079889e727..c04d7ef02c 100644
--- a/keyboards/inett_studio/sqx/hotswap/hotswap.c
+++ b/keyboards/inett_studio/sqx/hotswap/hotswap.c
@@ -165,6 +165,10 @@ bool rgb_matrix_indicators_kb(void) {
#endif //RGB_MATRIX_ENABLE
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ if (!process_record_user(keycode, record)) {
+ return false;
+ }
+
if (record->event.pressed) {
switch(keycode) {
#if defined(RGB_MATRIX_DISABLE_KEYCODES)
diff --git a/keyboards/inett_studio/sqx/universal/universal.c b/keyboards/inett_studio/sqx/universal/universal.c
index 519df57505..6c2af3a3b9 100644
--- a/keyboards/inett_studio/sqx/universal/universal.c
+++ b/keyboards/inett_studio/sqx/universal/universal.c
@@ -169,6 +169,10 @@ bool rgb_matrix_indicators_kb(void) {
#endif //RGB_MATRIX_ENABLE
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ if (!process_record_user(keycode, record)) {
+ return false;
+ }
+
if (record->event.pressed) {
switch(keycode) {
#if defined(RGB_MATRIX_DISABLE_KEYCODES)
diff --git a/keyboards/jae/j01/j01.c b/keyboards/jae/j01/j01.c
deleted file mode 100644
index 4d3f8ced46..0000000000
--- a/keyboards/jae/j01/j01.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright Evy Dekkers
- *
- * 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 "quantum.h"
-
-// Optional override functions below.
-// You can leave any or all of these undefined.
-// These are only required if you want to perform custom actions.
-
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
-
- matrix_init_user();
- gpio_set_pin_output(E6);
-}
-
-bool led_update_kb(led_t led_state) {
- if(led_update_user(led_state)) {
- gpio_write_pin(E6, !led_state.caps_lock);
- }
-
- return true;
-}
diff --git a/keyboards/jae/j01/keyboard.json b/keyboards/jae/j01/keyboard.json
index 56a5062c94..fd16f2a46e 100644
--- a/keyboards/jae/j01/keyboard.json
+++ b/keyboards/jae/j01/keyboard.json
@@ -33,6 +33,10 @@
"levels": 4,
"breathing": true
},
+ "indicators": {
+ "caps_lock": "E6",
+ "on_state": 0
+ },
"bootmagic": {
"matrix": [0, 2]
},
diff --git a/keyboards/jels/jels88/jels88.c b/keyboards/jels/jels88/jels88.c
deleted file mode 100644
index ceb187ab17..0000000000
--- a/keyboards/jels/jels88/jels88.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2021 Joah Nelson (Jels)
- *
- * 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/>.
- */
-
-// not much here ... just indicator LEDs
-
-#include "quantum.h"
-
-// LED indicator pins
-#define CAPS_LED D5
-#define SCROLL_LED D4
-
-void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(CAPS_LED);
- gpio_set_pin_output(SCROLL_LED);
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if (res) {
- gpio_write_pin(CAPS_LED, led_state.caps_lock);
- gpio_write_pin(SCROLL_LED, led_state.scroll_lock);
- }
- return res;
-}
diff --git a/keyboards/jels/jels88/keyboard.json b/keyboards/jels/jels88/keyboard.json
index ee9b64ed6a..e4d2c6e273 100644
--- a/keyboards/jels/jels88/keyboard.json
+++ b/keyboards/jels/jels88/keyboard.json
@@ -23,6 +23,10 @@
"resync": true
}
},
+ "indicators": {
+ "caps_lock": "D5",
+ "scroll_lock": "D4"
+ },
"matrix_pins": {
"cols": ["C7", "C6", "F7", "F6", "F5", "F4", "B1", "D2", "D3"],
"rows": ["B3", "B2", "D1", "D0", "E6", "B0", "F0", "F1", "B5", "B4", "D7", "D6"]
diff --git a/keyboards/kabedon/kabedon980/kabedon980.c b/keyboards/kabedon/kabedon980/kabedon980.c
deleted file mode 100644
index 7024a2eaa9..0000000000
--- a/keyboards/kabedon/kabedon980/kabedon980.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "quantum.h"
-
- bool led_update_kb(led_t led_state) {
- if (led_update_user(led_state)) {
- gpio_write_pin(E6, !led_state.caps_lock);
- }
- return true;
-}
diff --git a/keyboards/kabedon/kabedon980/keyboard.json b/keyboards/kabedon/kabedon980/keyboard.json
index cf9def2b8f..b8e100ceac 100644
--- a/keyboards/kabedon/kabedon980/keyboard.json
+++ b/keyboards/kabedon/kabedon980/keyboard.json
@@ -8,6 +8,10 @@
"pid": "0x3938",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "E6",
+ "on_state": 0
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/kapcave/gskt00/keymaps/default-poly/config.h b/keyboards/kapcave/gskt00/keymaps/default-poly/config.h
index 40a7c6ec47..9d03a669c8 100644
--- a/keyboards/kapcave/gskt00/keymaps/default-poly/config.h
+++ b/keyboards/kapcave/gskt00/keymaps/default-poly/config.h
@@ -16,8 +16,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
-#define ENCODERS_PAD_A { D5 }
-#define ENCODERS_PAD_B { D3 }
+#define ENCODER_A_PINS { D5 }
+#define ENCODER_B_PINS { D3 }
#define WS2812_DI_PIN D0
#define RGBLIGHT_EFFECT_BREATHING
diff --git a/keyboards/kbdfans/bella/soldered/keyboard.json b/keyboards/kbdfans/bella/soldered/keyboard.json
index 31d8e9ffb7..aa5d915980 100644
--- a/keyboards/kbdfans/bella/soldered/keyboard.json
+++ b/keyboards/kbdfans/bella/soldered/keyboard.json
@@ -31,6 +31,10 @@
"backlight": {
"pin": "B7"
},
+ "indicators": {
+ "caps_lock": "E6",
+ "on_state": 0
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layouts": {
diff --git a/keyboards/kbdfans/bella/soldered/soldered.c b/keyboards/kbdfans/bella/soldered/soldered.c
deleted file mode 100755
index bfe9f8f5d4..0000000000
--- a/keyboards/kbdfans/bella/soldered/soldered.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2020 dztech
- *
- * 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 "quantum.h"
-void matrix_init_kb(void) {
- gpio_set_pin_output(E6);
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(E6, !led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/kbdfans/maja_soldered/keyboard.json b/keyboards/kbdfans/maja_soldered/keyboard.json
index bf73f04d8a..f182ef97d1 100644
--- a/keyboards/kbdfans/maja_soldered/keyboard.json
+++ b/keyboards/kbdfans/maja_soldered/keyboard.json
@@ -31,6 +31,10 @@
"backlight": {
"pin": "B5"
},
+ "indicators": {
+ "caps_lock": "D4",
+ "on_state": 0
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"debounce": 3,
diff --git a/keyboards/kbdfans/maja_soldered/maja_soldered.c b/keyboards/kbdfans/maja_soldered/maja_soldered.c
deleted file mode 100755
index 41d80e2cc8..0000000000
--- a/keyboards/kbdfans/maja_soldered/maja_soldered.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2020 dztech kbdfans
- *
- * 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 "quantum.h"
-
-void matrix_init_kb(void) {
- gpio_set_pin_output(D4);
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(D4, !led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/kbdfans/phaseone/phaseone.c b/keyboards/kbdfans/phaseone/phaseone.c
index a44e501109..97cc7d2d2a 100644
--- a/keyboards/kbdfans/phaseone/phaseone.c
+++ b/keyboards/kbdfans/phaseone/phaseone.c
@@ -18,4 +18,6 @@
void keyboard_pre_init_kb(void) {
gpio_set_pin_output(D4);
+
+ keyboard_pre_init_user();
}
diff --git a/keyboards/kc60se/kc60se.c b/keyboards/kc60se/kc60se.c
deleted file mode 100644
index a7d60079b2..0000000000
--- a/keyboards/kc60se/kc60se.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2017 Blake C. Lewis
- *
- * 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 "quantum.h"
-
-void matrix_init_kb(void){
- gpio_set_pin_output(B2);
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(B2, !led_state.caps_lock);
- }
- return res;
-}
-
diff --git a/keyboards/kc60se/keyboard.json b/keyboards/kc60se/keyboard.json
index b7123b5749..c8bdf24a4b 100644
--- a/keyboards/kc60se/keyboard.json
+++ b/keyboards/kc60se/keyboard.json
@@ -27,6 +27,10 @@
"pin": "F5",
"levels": 6
},
+ "indicators": {
+ "caps_lock": "B2",
+ "on_state": 0
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_iso", "60_iso_split_bs_rshift"],
diff --git a/keyboards/kkatano/wallaby/keyboard.json b/keyboards/kkatano/wallaby/keyboard.json
index ee475a54bc..636fdba042 100644
--- a/keyboards/kkatano/wallaby/keyboard.json
+++ b/keyboards/kkatano/wallaby/keyboard.json
@@ -22,6 +22,10 @@
"resync": true
}
},
+ "indicators": {
+ "caps_lock": "B6",
+ "scroll_lock": "B7"
+ },
"matrix_pins": {
"cols": ["D5", "C7", "C6", "D4", "D0", "E6", "F0", "F1", "F4", "F5", "F6", "F7", "D7", "D6", "D1", "D2", "D3"],
"rows": ["B5", "B4", "B3", "B2", "B1", "B0"]
diff --git a/keyboards/kkatano/wallaby/wallaby.c b/keyboards/kkatano/wallaby/wallaby.c
deleted file mode 100644
index de2583903b..0000000000
--- a/keyboards/kkatano/wallaby/wallaby.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2020 Koichi Katano
- *
- * 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 "quantum.h"
-
-bool led_update_kb(led_t led_state) {
- if (led_update_user(led_state)) {
- gpio_write_pin(B6, led_state.caps_lock);
- gpio_write_pin(B7, led_state.scroll_lock);
- }
- return true;
-}
diff --git a/keyboards/kkatano/yurei/keyboard.json b/keyboards/kkatano/yurei/keyboard.json
index 7bf0895787..59084920da 100644
--- a/keyboards/kkatano/yurei/keyboard.json
+++ b/keyboards/kkatano/yurei/keyboard.json
@@ -22,6 +22,10 @@
"resync": true
}
},
+ "indicators": {
+ "caps_lock": "B6",
+ "scroll_lock": "B7"
+ },
"matrix_pins": {
"cols": ["D5", "C7", "C6", "D4", "D0", "E6", "F0", "F1", "F4", "F5", "F6", "F7", "D7", "D6", "D1", "D2", "D3"],
"rows": ["B5", "B4", "B3", "B2", "B1", "B0"]
diff --git a/keyboards/kkatano/yurei/yurei.c b/keyboards/kkatano/yurei/yurei.c
deleted file mode 100644
index 283726a884..0000000000
--- a/keyboards/kkatano/yurei/yurei.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2019 Koichi Katano
- *
- * 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 "quantum.h"
-
-bool led_update_kb(led_t led_state) {
- if (led_update_user(led_state)) {
- gpio_write_pin(B6, led_state.caps_lock);
- gpio_write_pin(B7, led_state.scroll_lock);
- }
- return true;
-}
diff --git a/keyboards/kopibeng/mnk88/mnk88.c b/keyboards/kopibeng/mnk88/mnk88.c
deleted file mode 100644
index efe32f8bfd..0000000000
--- a/keyboards/kopibeng/mnk88/mnk88.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 Samuel Lu
- *
- * 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 "quantum.h"
-
-void matrix_init_kb(void) {
-
- gpio_set_pin_output(LED_CAPS_LOCK_PIN);
- gpio_set_pin_output(LED_SCROLL_LOCK_PIN);
-
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
-
- bool res = led_update_user(led_state);
-
- if(res) {
- gpio_write_pin(LED_CAPS_LOCK_PIN, led_state.caps_lock);
- gpio_write_pin(LED_SCROLL_LOCK_PIN, led_state.scroll_lock);
- }
- return res;
-}
diff --git a/keyboards/kopibeng/xt8x/xt8x.c b/keyboards/kopibeng/xt8x/xt8x.c
index 2c4f246b6a..03342c40af 100644
--- a/keyboards/kopibeng/xt8x/xt8x.c
+++ b/keyboards/kopibeng/xt8x/xt8x.c
@@ -17,26 +17,11 @@
#include "quantum.h"
void matrix_init_kb(void) {
- // Initialize indicator LEDs to output
-
- gpio_set_pin_output(LED_CAPS_LOCK_PIN); // Caps
- gpio_set_pin_output(LED_SCROLL_LOCK_PIN); // Scroll lock
gpio_set_pin_output(INDICATOR_PIN_0); // Layer indicator on F13
matrix_init_user();
}
-bool led_update_kb(led_t led_state) {
-
- bool res = led_update_user(led_state);
-
- if(res) {
- gpio_write_pin(LED_CAPS_LOCK_PIN, led_state.caps_lock);
- gpio_write_pin(LED_SCROLL_LOCK_PIN, led_state.scroll_lock);
- }
- return res;
-}
-
__attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) {
gpio_write_pin(INDICATOR_PIN_0, layer_state_cmp(state, 1));
return state;
diff --git a/keyboards/maple_computing/lets_split_eh/eh/config.h b/keyboards/maple_computing/lets_split_eh/config.h
index 38cf73ae1e..38cf73ae1e 100644
--- a/keyboards/maple_computing/lets_split_eh/eh/config.h
+++ b/keyboards/maple_computing/lets_split_eh/config.h
diff --git a/keyboards/maple_computing/lets_split_eh/eh/rules.mk b/keyboards/maple_computing/lets_split_eh/eh/rules.mk
deleted file mode 100644
index 271780b75e..0000000000
--- a/keyboards/maple_computing/lets_split_eh/eh/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-# Disable unsupported hardware
-AUDIO_SUPPORTED = no
diff --git a/keyboards/maple_computing/lets_split_eh/eh/keyboard.json b/keyboards/maple_computing/lets_split_eh/keyboard.json
index f40b15098f..62d489d60c 100644
--- a/keyboards/maple_computing/lets_split_eh/eh/keyboard.json
+++ b/keyboards/maple_computing/lets_split_eh/keyboard.json
@@ -19,6 +19,7 @@
"rgblight": {
"led_count": 12,
"split_count": [6, 6],
+ "sleep": true,
"animations": {
"breathing": true,
"rainbow_mood": true,
@@ -42,7 +43,7 @@
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"features": {
- "bootmagic": false,
+ "bootmagic": true,
"mousekey": false,
"extrakey": true,
"nkro": true,
diff --git a/keyboards/maple_computing/lets_split_eh/eh/eh.c b/keyboards/maple_computing/lets_split_eh/lets_split_eh.c
index 37e8b3ab9b..37e8b3ab9b 100644
--- a/keyboards/maple_computing/lets_split_eh/eh/eh.c
+++ b/keyboards/maple_computing/lets_split_eh/lets_split_eh.c
diff --git a/keyboards/maple_computing/lets_split_eh/readme.md b/keyboards/maple_computing/lets_split_eh/readme.md
index 90ae5393d1..dc769b72c4 100644
--- a/keyboards/maple_computing/lets_split_eh/readme.md
+++ b/keyboards/maple_computing/lets_split_eh/readme.md
@@ -8,6 +8,6 @@ Keyboard Maintainer: [Christopher Poole (That-Canadian)](https://github.com/That
Make example for this keyboard (after setting up your build environment):
- make maple_computing/lets_split_eh/eh:default
+ make maple_computing/lets_split_eh:default
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
diff --git a/keyboards/maple_computing/lets_split_eh/rules.mk b/keyboards/maple_computing/lets_split_eh/rules.mk
index 9bae45fde8..271780b75e 100644
--- a/keyboards/maple_computing/lets_split_eh/rules.mk
+++ b/keyboards/maple_computing/lets_split_eh/rules.mk
@@ -1 +1,2 @@
-DEFAULT_FOLDER = maple_computing/lets_split_eh/eh
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
diff --git a/keyboards/marksard/leftover30/keyboard.json b/keyboards/marksard/leftover30/keyboard.json
index 546b3dbdd3..ae2250a5f2 100644
--- a/keyboards/marksard/leftover30/keyboard.json
+++ b/keyboards/marksard/leftover30/keyboard.json
@@ -33,6 +33,10 @@
{"pin_a": "F4", "pin_b": "F5"}
]
},
+ "indicators": {
+ "caps_lock": "D1",
+ "num_lock": "D2"
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/marksard/leftover30/leftover30.c b/keyboards/marksard/leftover30/leftover30.c
deleted file mode 100644
index cea0de703a..0000000000
--- a/keyboards/marksard/leftover30/leftover30.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2020 marksard
- *
- * 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 "quantum.h"
-
-// Optional override functions below.
-// You can leave any or all of these undefined.
-// These are only required if you want to perform custom actions.
-
-void keyboard_pre_init_user(void) {
- /* Set CAPSLOCK indicator pin as output */
- gpio_set_pin_output(D1);
- /* Set NUMLOCK indicator pin as output */
- gpio_set_pin_output(D2);
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(D2, led_state.num_lock);
- gpio_write_pin(D1, led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/masterworks/classy_tkl/rev_a/keyboard.json b/keyboards/masterworks/classy_tkl/rev_a/keyboard.json
index d3e723d413..889aa6d3f9 100644
--- a/keyboards/masterworks/classy_tkl/rev_a/keyboard.json
+++ b/keyboards/masterworks/classy_tkl/rev_a/keyboard.json
@@ -22,6 +22,10 @@
"resync": true
}
},
+ "indicators": {
+ "caps_lock": "B5",
+ "scroll_lock": "B6"
+ },
"matrix_pins": {
"cols": ["B4", "D7", "D6", "D4", "C6", "D5", "D3", "D2", "D1", "D0", "B7", "B3", "B2", "B1", "B0", "E6", "F7"],
"rows": ["C7", "F0", "F1", "F4", "F5", "F6"]
diff --git a/keyboards/masterworks/classy_tkl/rev_a/rev_a.c b/keyboards/masterworks/classy_tkl/rev_a/rev_a.c
deleted file mode 100644
index 6e01c217d2..0000000000
--- a/keyboards/masterworks/classy_tkl/rev_a/rev_a.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright 2020 Mathias Andersson <[email protected]>
- *
- * 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 "quantum.h"
-
-#define CAPS_PIN B5
-#define SCROLL_PIN B6
-
-// Optional override functions below.
-// You can leave any or all of these undefined.
-// These are only required if you want to perform custom actions.
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
-
- gpio_set_pin_output(CAPS_PIN);
- gpio_set_pin_output(SCROLL_PIN);
-
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(CAPS_PIN, led_state.caps_lock);
- gpio_write_pin(SCROLL_PIN, led_state.scroll_lock);
- }
- return res;
-}
diff --git a/keyboards/matrix/cain_re/cain_re.c b/keyboards/matrix/cain_re/cain_re.c
deleted file mode 100644
index 6dc24f2292..0000000000
--- a/keyboards/matrix/cain_re/cain_re.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * cain_re.c
- *
- Copyright 2020 astro <[email protected]>
-
- 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 "quantum.h"
-
-void matrix_init_kb(void)
-{
- gpio_set_pin_output(NUM_PIN);
- gpio_set_pin_output(CAPS_PIN);
- gpio_set_pin_output(SCROLL_PIN);
-
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state)
-{
- bool res = led_update_user(led_state);
- if (res) {
- gpio_write_pin(NUM_PIN, led_state.num_lock);
- gpio_write_pin(CAPS_PIN, led_state.caps_lock);
- gpio_write_pin(SCROLL_PIN, led_state.scroll_lock);
- }
- return res;
-}
diff --git a/keyboards/matrix/cain_re/config.h b/keyboards/matrix/cain_re/config.h
deleted file mode 100644
index 9469d689d0..0000000000
--- a/keyboards/matrix/cain_re/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * config.h
- *
- Copyright 2020 astro <[email protected]>
-
- 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
-
-#define CAPS_PIN D3
-#define NUM_PIN F7
-#define SCROLL_PIN B0
diff --git a/keyboards/matrix/cain_re/keyboard.json b/keyboards/matrix/cain_re/keyboard.json
index 02c6cbbeb5..7d93e806c2 100644
--- a/keyboards/matrix/cain_re/keyboard.json
+++ b/keyboards/matrix/cain_re/keyboard.json
@@ -8,6 +8,11 @@
"pid": "0x0106",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "D3",
+ "num_lock": "F7",
+ "scroll_lock": "B0"
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/matrix/falcon/falcon.c b/keyboards/matrix/falcon/falcon.c
index 74677ab0d1..bfc878a79c 100644
--- a/keyboards/matrix/falcon/falcon.c
+++ b/keyboards/matrix/falcon/falcon.c
@@ -25,4 +25,5 @@ void matrix_init_kb(void)
gpio_set_pin_output(LED_POWER_PIN);
gpio_write_pin_high(LED_POWER_PIN);
+ matrix_init_user();
}
diff --git a/keyboards/matrix/m12og/rev2/keyboard.json b/keyboards/matrix/m12og/rev2/keyboard.json
index 42df6a75e8..45fcffe9eb 100644
--- a/keyboards/matrix/m12og/rev2/keyboard.json
+++ b/keyboards/matrix/m12og/rev2/keyboard.json
@@ -8,6 +8,12 @@
"pid": "0x8712",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "C6",
+ "num_lock": "B1",
+ "scroll_lock": "B2",
+ "on_state": 0
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/matrix/m12og/rev2/rev2.c b/keyboards/matrix/m12og/rev2/rev2.c
deleted file mode 100644
index e64640b2d2..0000000000
--- a/keyboards/matrix/m12og/rev2/rev2.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * rev2.c
- */
-
-#include "quantum.h"
-
-void matrix_init_kb(void) {
- gpio_set_pin_output(C6);
- gpio_set_pin_output(B2);
- gpio_set_pin_output(B1);
-
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if (res) {
- gpio_write_pin(B1, !led_state.num_lock);
- gpio_write_pin(C6, !led_state.caps_lock);
- gpio_write_pin(B2, !led_state.scroll_lock);
- }
- return res;
-}
diff --git a/keyboards/mc_76k/keyboard.json b/keyboards/mc_76k/keyboard.json
index 049483bed9..18aef48d01 100644
--- a/keyboards/mc_76k/keyboard.json
+++ b/keyboards/mc_76k/keyboard.json
@@ -22,6 +22,10 @@
"resync": true
}
},
+ "indicators": {
+ "caps_lock": "D2",
+ "on_state": 0
+ },
"matrix_pins": {
"cols": ["D5", "D3", "D4", "B1", "D6", "D7", "B4", "B5", "F7", "F6", "F5", "F4", "F1", "F0"],
"rows": ["C7", "C6", "B6", "B0", "D1", "D0"]
diff --git a/keyboards/mc_76k/mc_76k.c b/keyboards/mc_76k/mc_76k.c
deleted file mode 100644
index 44d2374b1c..0000000000
--- a/keyboards/mc_76k/mc_76k.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2020 Yiancar-Designs
- *
- * 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 "quantum.h"
-
-void keyboard_pre_init_kb (void) {
- gpio_set_pin_output(D2);
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- // gpio_write_pin sets the pin high for 1 and low for 0.
- // In this example the pins are inverted, setting
- // it low/0 turns it on, and high/1 turns the LED off.
- // This behavior depends on whether the LED is between the pin
- // and VCC or the pin and GND.
- gpio_write_pin(D2, !led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c
index d49d16e85a..cc3853cacd 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c
+++ b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c
@@ -131,6 +131,10 @@ bool rgb_matrix_indicators_kb(void) {
#endif
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ if (!process_record_user(keycode, record)) {
+ return false;
+ }
+
if (record->event.pressed) {
switch(keycode) {
#ifdef RGBLIGHT_ENABLE
diff --git a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c
index c6943cc357..3fdc571380 100644
--- a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c
+++ b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c
@@ -223,6 +223,10 @@ layer_state_t layer_state_set_user(layer_state_t state) {
#endif
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ if (!process_record_user(keycode, record)) {
+ return false;
+ }
+
if (record->event.pressed) {
switch(keycode) {
#ifdef RGB_MATRIX_DISABLE_KEYCODES
diff --git a/keyboards/mechlovin/kay65/kay65.c b/keyboards/mechlovin/kay65/kay65.c
index f59f23e13d..b125cf1f79 100644
--- a/keyboards/mechlovin/kay65/kay65.c
+++ b/keyboards/mechlovin/kay65/kay65.c
@@ -17,9 +17,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "quantum.h"
-void keyboard_pre_init_user(void) {
- // Call the keyboard pre init code.
-
+void keyboard_pre_init_kb(void) {
// Set our LED pins as output
gpio_set_pin_output(D7);
+
+ keyboard_pre_init_user();
}
diff --git a/keyboards/mechlovin/zed1800/zed1800.c b/keyboards/mechlovin/zed1800/zed1800.c
index e86b4d5a5a..a7b526b7a6 100644
--- a/keyboards/mechlovin/zed1800/zed1800.c
+++ b/keyboards/mechlovin/zed1800/zed1800.c
@@ -27,9 +27,13 @@ RGBLIGHT_LAYERS_LIST(
my_numlock_layer,
my_scroll_layer
);
+
void keyboard_post_init_kb(void) {
rgblight_layers = my_rgb_layers;
+
+ keyboard_post_init_user();
}
+
// Activate rgb layer for caps when capslock is enabled
bool led_update_kb(led_t led_state) {
rgblight_set_layer_state(0, led_state.caps_lock);
diff --git a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/wearhaus66.c b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/wearhaus66.c
index a6942a2cb8..de1c73a0e0 100644
--- a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/wearhaus66.c
+++ b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/wearhaus66.c
@@ -17,8 +17,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "quantum.h"
-void keyboard_pre_init_user(void) {
- // Call the keyboard pre init code.
+void keyboard_pre_init_kb(void) {
// Set our LED pins as output
gpio_set_pin_output(B7);
+
+ keyboard_pre_init_user();
}
diff --git a/keyboards/mode/m256wh/config.h b/keyboards/mode/m256wh/config.h
index 06f1658ea5..5bb3d6d1f3 100644
--- a/keyboards/mode/m256wh/config.h
+++ b/keyboards/mode/m256wh/config.h
@@ -23,5 +23,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define WS2812_PWM_PAL_MODE 1
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
#define WS2812_PWM_DMA_CHANNEL 6
-
-#define EECONFIG_KB_DATA_SIZE (1)
diff --git a/keyboards/punk75/config.h b/keyboards/mode/m256wh/keymaps/via/config.h
index 321865330c..31dfebf49a 100644
--- a/keyboards/punk75/config.h
+++ b/keyboards/mode/m256wh/keymaps/via/config.h
@@ -1,5 +1,5 @@
/*
-Copyright 2020 dsanchezseco
+Copyright 2022 Gondolindrim
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
@@ -17,4 +17,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define LED A0
+#define EECONFIG_USER_DATA_SIZE (1)
diff --git a/keyboards/mode/m256wh/keymaps/via/keymap.c b/keyboards/mode/m256wh/keymaps/via/keymap.c
index a81d663450..6adb5cfffa 100644
--- a/keyboards/mode/m256wh/keymaps/via/keymap.c
+++ b/keyboards/mode/m256wh/keymaps/via/keymap.c
@@ -31,3 +31,135 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};
+
+bool is_second_rgb_row_active;
+
+enum via_secondrow_enable {
+ id_is_second_rgb_row_active = 0
+};
+
+// Sets the second RGB row on or off; done by setting effect range.
+void set_second_rgb_row(bool is_active) {
+ rgblight_disable_noeeprom();
+ switch (is_active)
+ {
+ case true:
+ {
+ rgblight_set_effect_range(0,30);
+ break;
+ }
+ case false:
+ {
+ rgblight_set_effect_range(0,15);
+ break;
+ }
+ }
+ rgblight_enable_noeeprom();
+}
+
+// At the keyboard start, retrieves PMEM stored configs
+void keyboard_post_init_user(void) {
+ rgblight_disable_noeeprom();
+ wait_ms(20);
+ eeconfig_read_user_datablock(&is_second_rgb_row_active);
+ set_second_rgb_row(is_second_rgb_row_active);
+ rgblight_reload_from_eeprom();
+ rgblight_set();
+}
+
+void eeconfig_init_user(void) { // EEPROM is getting reset!
+ // rgblight_disable(); // Enable RGB by default
+ // Define the defualt value and write it to EEPROM
+ is_second_rgb_row_active = true;
+ set_second_rgb_row(is_second_rgb_row_active);
+ eeconfig_update_user_datablock(&is_second_rgb_row_active);
+
+ // Disable rgblight by default on EEPROM initialization
+ rgblight_disable();
+}
+
+void secondrow_config_set_value( uint8_t *data )
+{
+ // data = [ value_id, value_data ]
+ uint8_t *value_id = &(data[0]);
+ uint8_t *value_data = &(data[1]);
+
+ switch ( *value_id )
+ {
+ case id_is_second_rgb_row_active:
+ {
+ is_second_rgb_row_active = (bool) *value_data;
+ break;
+ }
+ default:
+ {
+ is_second_rgb_row_active = true;
+ }
+ }
+ set_second_rgb_row(is_second_rgb_row_active);
+}
+
+void secondrow_config_get_value( uint8_t *data )
+{
+ // data = [ value_id, value_data ]
+ uint8_t *value_id = &(data[0]);
+ uint8_t *value_data = &(data[1]);
+
+ switch ( *value_id )
+ {
+ case id_is_second_rgb_row_active:
+ {
+ *value_data = is_second_rgb_row_active;
+ break;
+ }
+ default:
+ {
+ *value_data = false;
+ }
+ }
+}
+
+void secondrow_config_save(void)
+{
+ eeconfig_update_user_datablock(&is_second_rgb_row_active);
+}
+
+void via_custom_value_command_kb(uint8_t *data, uint8_t length) {
+ // data = [ command_id, channel_id, value_id, value_data ]
+ uint8_t *command_id = &(data[0]);
+ uint8_t *channel_id = &(data[1]);
+ uint8_t *value_id_and_data = &(data[2]);
+
+ if ( *channel_id == id_custom_channel ) {
+ switch ( *command_id )
+ {
+ case id_custom_set_value:
+ {
+ secondrow_config_set_value(value_id_and_data);
+ break;
+ }
+ case id_custom_get_value:
+ {
+ secondrow_config_get_value(value_id_and_data);
+ break;
+ }
+ case id_custom_save:
+ {
+ secondrow_config_save();
+ break;
+ }
+ default:
+ {
+ // Unhandled message.
+ *command_id = id_unhandled;
+ break;
+ }
+ }
+ return;
+ }
+
+ // Return the unhandled state
+ *command_id = id_unhandled;
+
+ // DO NOT call raw_hid_send(data,length) here, let caller do this
+}
diff --git a/keyboards/mode/m256wh/m256wh.c b/keyboards/mode/m256wh/m256wh.c
deleted file mode 100644
index cec427f329..0000000000
--- a/keyboards/mode/m256wh/m256wh.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/* Copyright 2022 Gondolindrim
- *
- * 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 "quantum.h"
-
-#ifdef VIA_ENABLE
-bool is_second_rgb_row_active;
-enum via_secondrow_enable {
- id_is_second_rgb_row_active = 0
-};
-
-// Sets the second RGB row on or off; done by setting effect range.
-void set_second_rgb_row(bool is_active) {
- rgblight_disable_noeeprom();
- switch (is_active)
- {
- case true:
- {
- rgblight_set_effect_range(0,30);
- break;
- }
- case false:
- {
- rgblight_set_effect_range(0,15);
- break;
- }
- }
- rgblight_enable_noeeprom();
-}
-
-// At the keyboard start, retrieves PMEM stored configs
-void keyboard_post_init_kb(void) {
- rgblight_disable_noeeprom();
- wait_ms(20);
- eeconfig_read_kb_datablock(&is_second_rgb_row_active);
- set_second_rgb_row(is_second_rgb_row_active);
- rgblight_reload_from_eeprom();
- rgblight_set();
-}
-
-void eeconfig_init_kb(void) { // EEPROM is getting reset!
- // rgblight_disable(); // Enable RGB by default
- // Define the defualt value and write it to EEPROM
- is_second_rgb_row_active = true;
- set_second_rgb_row(is_second_rgb_row_active);
- eeconfig_update_kb_datablock(&is_second_rgb_row_active);
-
- // Disable rgblight by default on EEPROM initialization
- rgblight_disable();
-
- // Run user code if any
- eeconfig_init_user();
-}
-
-void secondrow_config_set_value( uint8_t *data )
-{
- // data = [ value_id, value_data ]
- uint8_t *value_id = &(data[0]);
- uint8_t *value_data = &(data[1]);
-
- switch ( *value_id )
- {
- case id_is_second_rgb_row_active:
- {
- is_second_rgb_row_active = (bool) *value_data;
- break;
- }
- default:
- {
- is_second_rgb_row_active = true;
- }
- }
- set_second_rgb_row(is_second_rgb_row_active);
-}
-
-void secondrow_config_get_value( uint8_t *data )
-{
- // data = [ value_id, value_data ]
- uint8_t *value_id = &(data[0]);
- uint8_t *value_data = &(data[1]);
-
- switch ( *value_id )
- {
- case id_is_second_rgb_row_active:
- {
- *value_data = is_second_rgb_row_active;
- break;
- }
- default:
- {
- *value_data = false;
- }
- }
-}
-
-void secondrow_config_save(void)
-{
-
- eeconfig_update_kb_datablock(&is_second_rgb_row_active);
-}
-
-void via_custom_value_command_kb(uint8_t *data, uint8_t length) {
- // data = [ command_id, channel_id, value_id, value_data ]
- uint8_t *command_id = &(data[0]);
- uint8_t *channel_id = &(data[1]);
- uint8_t *value_id_and_data = &(data[2]);
-
- if ( *channel_id == id_custom_channel ) {
- switch ( *command_id )
- {
- case id_custom_set_value:
- {
- secondrow_config_set_value(value_id_and_data);
- break;
- }
- case id_custom_get_value:
- {
- secondrow_config_get_value(value_id_and_data);
- break;
- }
- case id_custom_save:
- {
- secondrow_config_save();
- break;
- }
- default:
- {
- // Unhandled message.
- *command_id = id_unhandled;
- break;
- }
- }
- return;
- }
-
- // Return the unhandled state
- *command_id = id_unhandled;
-
- // DO NOT call raw_hid_send(data,length) here, let caller do this
-}
-#endif
diff --git a/keyboards/mode/m256ws/config.h b/keyboards/mode/m256ws/config.h
index 06f1658ea5..5bb3d6d1f3 100644
--- a/keyboards/mode/m256ws/config.h
+++ b/keyboards/mode/m256ws/config.h
@@ -23,5 +23,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define WS2812_PWM_PAL_MODE 1
#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
#define WS2812_PWM_DMA_CHANNEL 6
-
-#define EECONFIG_KB_DATA_SIZE (1)
diff --git a/keyboards/handwired/z150/config.h b/keyboards/mode/m256ws/keymaps/via/config.h
index 7a054266ea..31dfebf49a 100644
--- a/keyboards/handwired/z150/config.h
+++ b/keyboards/mode/m256ws/keymaps/via/config.h
@@ -1,5 +1,5 @@
/*
-Copyright 2020 DmNosachev
+Copyright 2022 Gondolindrim
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
@@ -17,22 +17,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define NUM_LOCK_LED_PIN B5
-#define SCROLL_LOCK_LED_PIN B4
-#define CAPS_LOCK_LED_PIN B3
-
-/*
- * Feature disable options
- * These options are also useful to firmware size reduction.
- */
-
-/* disable debug print */
-//#define NO_DEBUG
-
-/* disable print */
-//#define NO_PRINT
-
-/* disable action features */
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT
+#define EECONFIG_USER_DATA_SIZE (1)
diff --git a/keyboards/mode/m256ws/keymaps/via/keymap.c b/keyboards/mode/m256ws/keymaps/via/keymap.c
index ab77f7af20..6766852f78 100644
--- a/keyboards/mode/m256ws/keymaps/via/keymap.c
+++ b/keyboards/mode/m256ws/keymaps/via/keymap.c
@@ -31,3 +31,135 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS
)
};
+
+bool is_second_rgb_row_active;
+
+enum via_secondrow_enable {
+ id_is_second_rgb_row_active = 0
+};
+
+// Sets the second RGB row on or off; done by setting effect range.
+void set_second_rgb_row(bool is_active) {
+ rgblight_disable_noeeprom();
+ switch (is_active)
+ {
+ case true:
+ {
+ rgblight_set_effect_range(0,30);
+ break;
+ }
+ case false:
+ {
+ rgblight_set_effect_range(0,15);
+ break;
+ }
+ }
+ rgblight_enable_noeeprom();
+}
+
+// At the keyboard start, retrieves PMEM stored configs
+void keyboard_post_init_user(void) {
+ rgblight_disable_noeeprom();
+ wait_ms(20);
+ eeconfig_read_user_datablock(&is_second_rgb_row_active);
+ set_second_rgb_row(is_second_rgb_row_active);
+ rgblight_reload_from_eeprom();
+ rgblight_set();
+}
+
+void eeconfig_init_user(void) { // EEPROM is getting reset!
+ // rgblight_disable(); // Enable RGB by default
+ // Define the defualt value and write it to EEPROM
+ is_second_rgb_row_active = true;
+ set_second_rgb_row(is_second_rgb_row_active);
+ eeconfig_update_user_datablock(&is_second_rgb_row_active);
+
+ // Disable rgblight by default on EEPROM initialization
+ rgblight_disable();
+}
+
+void secondrow_config_set_value( uint8_t *data )
+{
+ // data = [ value_id, value_data ]
+ uint8_t *value_id = &(data[0]);
+ uint8_t *value_data = &(data[1]);
+
+ switch ( *value_id )
+ {
+ case id_is_second_rgb_row_active:
+ {
+ is_second_rgb_row_active = (bool) *value_data;
+ break;
+ }
+ default:
+ {
+ is_second_rgb_row_active = true;
+ }
+ }
+ set_second_rgb_row(is_second_rgb_row_active);
+}
+
+void secondrow_config_get_value( uint8_t *data )
+{
+ // data = [ value_id, value_data ]
+ uint8_t *value_id = &(data[0]);
+ uint8_t *value_data = &(data[1]);
+
+ switch ( *value_id )
+ {
+ case id_is_second_rgb_row_active:
+ {
+ *value_data = is_second_rgb_row_active;
+ break;
+ }
+ default:
+ {
+ *value_data = false;
+ }
+ }
+}
+
+void secondrow_config_save(void)
+{
+ eeconfig_update_user_datablock(&is_second_rgb_row_active);
+}
+
+void via_custom_value_command_kb(uint8_t *data, uint8_t length) {
+ // data = [ command_id, channel_id, value_id, value_data ]
+ uint8_t *command_id = &(data[0]);
+ uint8_t *channel_id = &(data[1]);
+ uint8_t *value_id_and_data = &(data[2]);
+
+ if ( *channel_id == id_custom_channel ) {
+ switch ( *command_id )
+ {
+ case id_custom_set_value:
+ {
+ secondrow_config_set_value(value_id_and_data);
+ break;
+ }
+ case id_custom_get_value:
+ {
+ secondrow_config_get_value(value_id_and_data);
+ break;
+ }
+ case id_custom_save:
+ {
+ secondrow_config_save();
+ break;
+ }
+ default:
+ {
+ // Unhandled message.
+ *command_id = id_unhandled;
+ break;
+ }
+ }
+ return;
+ }
+
+ // Return the unhandled state
+ *command_id = id_unhandled;
+
+ // DO NOT call raw_hid_send(data,length) here, let caller do this
+}
diff --git a/keyboards/mode/m256ws/m256ws.c b/keyboards/mode/m256ws/m256ws.c
deleted file mode 100644
index 5603de7b01..0000000000
--- a/keyboards/mode/m256ws/m256ws.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright 2022 Gondolindrim
- *
- * 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 "quantum.h"
-
-#ifdef VIA_ENABLE
-bool is_second_rgb_row_active;
-enum via_secondrow_enable {
- id_is_second_rgb_row_active = 0
-};
-
-// Sets the second RGB row on or off; done by setting effect range.
-void set_second_rgb_row(bool is_active) {
- rgblight_disable_noeeprom();
- switch (is_active)
- {
- case true:
- {
- rgblight_set_effect_range(0,30);
- break;
- }
- case false:
- {
- rgblight_set_effect_range(0,15);
- break;
- }
- }
- rgblight_enable_noeeprom();
-}
-
-// At the keyboard start, retrieves PMEM stored configs
-void keyboard_post_init_kb(void) {
- rgblight_disable_noeeprom();
- wait_ms(20);
- eeconfig_read_kb_datablock(&is_second_rgb_row_active);
- set_second_rgb_row(is_second_rgb_row_active);
- rgblight_reload_from_eeprom();
- rgblight_set();
-}
-
-void eeconfig_init_kb(void) { // EEPROM is getting reset!
- // rgblight_disable(); // Enable RGB by default
- // Define the defualt value and write it to EEPROM
- is_second_rgb_row_active = true;
- set_second_rgb_row(is_second_rgb_row_active);
- eeconfig_update_kb_datablock(&is_second_rgb_row_active);
-
- // Disable rgblight by default on EEPROM initialization
- rgblight_disable();
-
- // Run user code, if any
- eeconfig_init_user();
-}
-
-void secondrow_config_set_value( uint8_t *data )
-{
- // data = [ value_id, value_data ]
- uint8_t *value_id = &(data[0]);
- uint8_t *value_data = &(data[1]);
-
- switch ( *value_id )
- {
- case id_is_second_rgb_row_active:
- {
- is_second_rgb_row_active = (bool) *value_data;
- break;
- }
- default:
- {
- is_second_rgb_row_active = true;
- }
- }
- set_second_rgb_row(is_second_rgb_row_active);
-}
-
-void secondrow_config_get_value( uint8_t *data )
-{
- // data = [ value_id, value_data ]
- uint8_t *value_id = &(data[0]);
- uint8_t *value_data = &(data[1]);
-
- switch ( *value_id )
- {
- case id_is_second_rgb_row_active:
- {
- *value_data = is_second_rgb_row_active;
- break;
- }
- default:
- {
- *value_data = false;
- }
- }
-}
-
-void secondrow_config_save(void)
-{
-
- eeconfig_update_kb_datablock(&is_second_rgb_row_active);
-}
-
-void via_custom_value_command_kb(uint8_t *data, uint8_t length) {
- // data = [ command_id, channel_id, value_id, value_data ]
- uint8_t *command_id = &(data[0]);
- uint8_t *channel_id = &(data[1]);
- uint8_t *value_id_and_data = &(data[2]);
-
- if ( *channel_id == id_custom_channel ) {
- switch ( *command_id )
- {
- case id_custom_set_value:
- {
- secondrow_config_set_value(value_id_and_data);
- break;
- }
- case id_custom_get_value:
- {
- secondrow_config_get_value(value_id_and_data);
- break;
- }
- case id_custom_save:
- {
- secondrow_config_save();
- break;
- }
- default:
- {
- // Unhandled message.
- *command_id = id_unhandled;
- break;
- }
- }
- return;
- }
-
- // Return the unhandled state
- *command_id = id_unhandled;
-
-}
-#endif // VIA ENABLE
diff --git a/keyboards/monsgeek/m3/m3.c b/keyboards/monsgeek/m3/m3.c
index 04a9f0ca96..1752ddc3b3 100644
--- a/keyboards/monsgeek/m3/m3.c
+++ b/keyboards/monsgeek/m3/m3.c
@@ -140,6 +140,8 @@ void matrix_init_kb(void) {
gpio_write_pin_low(LED_MAC_OS_PIN);
gpio_set_pin_output(LED_WIN_LOCK_PIN); // LED3 Win Lock
gpio_write_pin_low(LED_WIN_LOCK_PIN);
+
+ matrix_init_user();
}
void housekeeping_task_kb(void){
diff --git a/keyboards/mt/mt84/config.h b/keyboards/mt/mt84/config.h
index e2b30400a9..99449b14cc 100644
--- a/keyboards/mt/mt84/config.h
+++ b/keyboards/mt/mt84/config.h
@@ -1,18 +1,6 @@
- /* Copyright 2020 MT <[email protected]>
- *
- * 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/>.
- */
+// Copyright 2020 MaiKong<[email protected]>
+// SPDX-License-Identifier: GPL-2.0+
+
#pragma once
#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND
diff --git a/keyboards/mt/mt84/keyboard.json b/keyboards/mt/mt84/keyboard.json
index fd03c2cf71..26f66b31db 100644
--- a/keyboards/mt/mt84/keyboard.json
+++ b/keyboards/mt/mt84/keyboard.json
@@ -43,7 +43,6 @@
"hue_wave": true,
"pixel_rain": true,
"pixel_flow": true,
- "pixel_fractal": true,
"solid_reactive_simple": true,
"solid_reactive": true,
"solid_reactive_wide": true,
diff --git a/keyboards/mt/mt84/keymaps/default/keymap.c b/keyboards/mt/mt84/keymaps/default/keymap.c
index e3c7fa8b87..2b3371257c 100644
--- a/keyboards/mt/mt84/keymaps/default/keymap.c
+++ b/keyboards/mt/mt84/keymaps/default/keymap.c
@@ -1,18 +1,6 @@
- /* Copyright 2020 mt<[email protected]>
- *
- * 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/>.
- */
+// Copyright 2020 MaiKong<[email protected]>
+// SPDX-License-Identifier: GPL-2.0
+
#include QMK_KEYBOARD_H
diff --git a/keyboards/mt/mt84/keymaps/via/keymap.c b/keyboards/mt/mt84/keymaps/via/keymap.c
index 6906ddf9fe..906ed635ad 100644
--- a/keyboards/mt/mt84/keymaps/via/keymap.c
+++ b/keyboards/mt/mt84/keymaps/via/keymap.c
@@ -1,18 +1,6 @@
- /* Copyright 2020 MaiKong<[email protected]>
- *
- * 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/>.
- */
+// Copyright 2020 MaiKong<[email protected]>
+// SPDX-License-Identifier: GPL-2.0+
+
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
diff --git a/keyboards/mt/mt84/mt84.c b/keyboards/mt/mt84/mt84.c
index 1ac61e87c0..230559af4c 100644
--- a/keyboards/mt/mt84/mt84.c
+++ b/keyboards/mt/mt84/mt84.c
@@ -1,18 +1,6 @@
- /* Copyright 2020 MT<[email protected]>
- *
- * 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/>.
- */
+// Copyright 2020 MaiKong<[email protected]>
+// SPDX-License-Identifier: GPL-2.0+
+
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
diff --git a/keyboards/noxary/220/220.c b/keyboards/noxary/220/220.c
deleted file mode 100644
index c5affa4344..0000000000
--- a/keyboards/noxary/220/220.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2020 Rozakiin
- *
- * 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 "quantum.h"
-
-// Optional override functions below.
-// You can leave any or all of these undefined.
-// These are only required if you want to perform custom actions.
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
- gpio_set_pin_output(C6);
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if(led_update_user(led_state)) {
- gpio_write_pin(C6, led_state.num_lock);
- }
- return true;
-} \ No newline at end of file
diff --git a/keyboards/noxary/220/keyboard.json b/keyboards/noxary/220/keyboard.json
index 75d71aac8a..3565316999 100644
--- a/keyboards/noxary/220/keyboard.json
+++ b/keyboards/noxary/220/keyboard.json
@@ -32,6 +32,9 @@
"pin": "B7",
"breathing": true
},
+ "indicators": {
+ "num_lock": "C6"
+ },
"processor": "atmega32u2",
"bootloader": "atmel-dfu",
"community_layouts": ["ortho_6x4"],
diff --git a/keyboards/noxary/268_2/268_2.c b/keyboards/noxary/268_2/268_2.c
deleted file mode 100644
index 56b42d2343..0000000000
--- a/keyboards/noxary/268_2/268_2.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2018 Rozakiin
- *
- * 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 "quantum.h"
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
- gpio_set_pin_output(B0);
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if(led_update_user(led_state)) {
- gpio_write_pin(B0, led_state.caps_lock);
- }
- return true;
-}
diff --git a/keyboards/noxary/268_2/keyboard.json b/keyboards/noxary/268_2/keyboard.json
index c724d07a49..08daee6d63 100644
--- a/keyboards/noxary/268_2/keyboard.json
+++ b/keyboards/noxary/268_2/keyboard.json
@@ -31,6 +31,9 @@
"backlight": {
"pin": "B7"
},
+ "indicators": {
+ "caps_lock": "B0"
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": ["65_ansi_blocker"],
diff --git a/keyboards/noxary/280/280.c b/keyboards/noxary/280/280.c
deleted file mode 100644
index 0f29df178f..0000000000
--- a/keyboards/noxary/280/280.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2019 %YOUR_NAME%
- *
- * 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 "quantum.h"
-
-// Optional override functions below.
-// You can leave any or all of these undefined.
-// These are only required if you want to perform custom actions.
-
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
- gpio_set_pin_output(D5);
- gpio_set_pin_output(D0);
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if(led_update_user(led_state)) {
- gpio_write_pin(D5, led_state.caps_lock);
- gpio_write_pin(D0, led_state.scroll_lock);
- }
- return true;
-} \ No newline at end of file
diff --git a/keyboards/noxary/280/keyboard.json b/keyboards/noxary/280/keyboard.json
index 17acb96cdf..4bd9257152 100644
--- a/keyboards/noxary/280/keyboard.json
+++ b/keyboards/noxary/280/keyboard.json
@@ -32,6 +32,10 @@
"pin": "B7",
"breathing": true
},
+ "indicators": {
+ "caps_lock": "D5",
+ "scroll_lock": "D0"
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layouts": {
diff --git a/keyboards/noxary/x268/keyboard.json b/keyboards/noxary/x268/keyboard.json
index f5a991deff..7ca5799de2 100644
--- a/keyboards/noxary/x268/keyboard.json
+++ b/keyboards/noxary/x268/keyboard.json
@@ -32,6 +32,9 @@
"backlight": {
"pin": "B7"
},
+ "indicators": {
+ "caps_lock": "B0"
+ },
"rgblight": {
"hue_steps": 16,
"saturation_steps": 16,
diff --git a/keyboards/noxary/x268/x268.c b/keyboards/noxary/x268/x268.c
deleted file mode 100644
index 67d6dff89d..0000000000
--- a/keyboards/noxary/x268/x268.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2020 Rozakiin
- *
- * 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 "quantum.h"
-
-// Optional override functions below.
-// You can leave any or all of these undefined.
-// These are only required if you want to perform custom actions.
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
- gpio_set_pin_output(B0);
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if(led_update_user(led_state)) {
- gpio_write_pin(B0, led_state.caps_lock);
- }
- return true;
-}
diff --git a/keyboards/nullbitsco/snap/snap.c b/keyboards/nullbitsco/snap/snap.c
index 7308572f95..bd0ea5b731 100644
--- a/keyboards/nullbitsco/snap/snap.c
+++ b/keyboards/nullbitsco/snap/snap.c
@@ -15,11 +15,6 @@
*/
#include "snap.h"
-// Macro variables
-bool is_alt_tab_active = false;
-uint16_t alt_tab_timer = 0;
-bool muted = false;
-
void matrix_init_kb(void) {
set_bitc_LED(LED_OFF);
matrix_init_remote_kb();
@@ -27,23 +22,16 @@ void matrix_init_kb(void) {
}
void keyboard_post_init_kb(void) {
- #ifdef CONSOLE_ENABLE
+#ifdef CONSOLE_ENABLE
debug_enable = true;
debug_matrix = true;
- #endif
+#endif
keyboard_post_init_user();
}
void matrix_scan_kb(void) {
matrix_scan_remote_kb();
matrix_scan_user();
-
- if (is_alt_tab_active) {
- if (timer_elapsed(alt_tab_timer) > 1000) {
- unregister_code(KC_LALT);
- is_alt_tab_active = false;
- }
- }
}
// Use Bit-C LED to show CAPS LOCK and NUM LOCK status
@@ -51,63 +39,29 @@ void led_update_ports(led_t led_state) {
set_bitc_LED(led_state.caps_lock ? LED_DIM : LED_OFF);
}
+bool shutdown_kb(bool jump_to_bootloader) {
+ if (!shutdown_user(jump_to_bootloader)) {
+ return false;
+ }
+
+ set_bitc_LED(LED_DIM);
+#ifdef RGBLIGHT_ENABLE
+ rgblight_disable_noeeprom();
+#endif
+#ifdef OLED_ENABLE
+ oled_off();
+#endif
+ return true;
+}
+
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
// If console is enabled, it will print the matrix position and status of each key pressed
- #ifdef CONSOLE_ENABLE
+#ifdef CONSOLE_ENABLE
dprintf("kc: 0x%04X, col: %u, row: %u, pressed: %b, time: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time);
- #endif
+#endif
process_record_remote_kb(keycode, record);
if (!process_record_user(keycode, record)) return false;
- switch (keycode) {
- case QK_BOOT:
- if (record->event.pressed) {
- set_bitc_LED(LED_DIM);
- #ifdef RGBLIGHT_ENABLE
- rgblight_disable_noeeprom();
- #endif
- #ifdef OLED_ENABLE
- oled_off();
- #endif
- bootloader_jump(); // jump to bootloader
- }
- return false;
-
- case DISC_MUTE:
- if (record->event.pressed) {
- tap_code(KC_F23);
- #ifdef RGBLIGHT_ENABLE
- if (!rgblight_is_enabled()) break;
-
- if (muted) {
- rgblight_enable_noeeprom();
- } else {
- rgblight_timer_disable();
- uint8_t val = rgblight_get_val();
- rgblight_sethsv_range(255, 255, val, 1, 5);
- }
- #endif
- muted = !muted;
- }
- break;
-
- case SUPER_ALT_TAB:
- if (record->event.pressed) {
- if (!is_alt_tab_active) {
- is_alt_tab_active = true;
- register_code(KC_LALT);
- }
- alt_tab_timer = timer_read();
- register_code(KC_TAB);
- } else {
- unregister_code(KC_TAB);
- }
- break;
-
- default:
- break;
- }
-
return true;
}
diff --git a/keyboards/nullbitsco/snap/snap.h b/keyboards/nullbitsco/snap/snap.h
index e593257368..c1fa22e0c1 100644
--- a/keyboards/nullbitsco/snap/snap.h
+++ b/keyboards/nullbitsco/snap/snap.h
@@ -18,15 +18,3 @@
#include "quantum.h"
#include "common/remote_kb.h"
#include "common/bitc_led.h"
-
-#ifdef VIA_ENABLE
-enum custom_keycodes {
- DISC_MUTE = QK_USER_0,
- SUPER_ALT_TAB
-};
-#else
-enum custom_keycodes {
- DISC_MUTE = SAFE_RANGE,
- SUPER_ALT_TAB
-};
-#endif
diff --git a/keyboards/omnikeyish/omnikeyish.c b/keyboards/omnikeyish/omnikeyish.c
index 4a8a7fa4d6..8e7e316524 100644
--- a/keyboards/omnikeyish/omnikeyish.c
+++ b/keyboards/omnikeyish/omnikeyish.c
@@ -1,10 +1,12 @@
#include "omnikeyish.h"
-void keyboard_pre_init_user(void) {
+void keyboard_pre_init_kb(void) {
dynamic_macro_init();
+
+ keyboard_pre_init_user();
}
-void keyboard_post_init_user(void) {
+void keyboard_post_init_kb(void) {
/* Customise these values to desired behaviour */
//debug_enable = true;
//debug_matrix=true;
@@ -19,6 +21,8 @@ void keyboard_post_init_user(void) {
/* Send numlock keycode to attempt to force numlock back on. */
register_code(KC_NUM_LOCK);
unregister_code(KC_NUM_LOCK);
+
+ keyboard_post_init_user();
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
diff --git a/keyboards/ortho5by12/keyboard.json b/keyboards/ortho5by12/keyboard.json
index 49ce494417..5bcd1e00fc 100644
--- a/keyboards/ortho5by12/keyboard.json
+++ b/keyboards/ortho5by12/keyboard.json
@@ -22,6 +22,10 @@
"resync": true
}
},
+ "indicators": {
+ "caps_lock": "C5",
+ "num_lock": "C4"
+ },
"matrix_pins": {
"cols": ["C2", "D0", "D1", "D4", "C3", "C1"],
"rows": ["B5", "B1", "B2", "B3", "B4", "C0", "D5", "D6", "D7", "B0"]
diff --git a/keyboards/ortho5by12/ortho5by12.c b/keyboards/ortho5by12/ortho5by12.c
deleted file mode 100644
index d0d9ce9102..0000000000
--- a/keyboards/ortho5by12/ortho5by12.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2019 Takuya Urakawa (dm9records.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/>.
- */
-#include "quantum.h"
-
-void matrix_init_kb(void) {
- gpio_set_pin_output(C4);
- gpio_set_pin_output(C5);
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(C4, led_state.num_lock);
- gpio_write_pin(C5, led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/percent/canoe_gen2/canoe_gen2.c b/keyboards/percent/canoe_gen2/canoe_gen2.c
index ea091c3474..435083a269 100644
--- a/keyboards/percent/canoe_gen2/canoe_gen2.c
+++ b/keyboards/percent/canoe_gen2/canoe_gen2.c
@@ -17,21 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "quantum.h"
-void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(E6);
- gpio_write_pin_high(E6);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if(led_update_user(led_state)) {
- gpio_write_pin(E6, !led_state.caps_lock);
- }
-
- return true;
-}
-
#ifdef RGB_MATRIX_ENABLE
void suspend_power_down_kb(void) {
rgb_matrix_set_suspend_state(true);
diff --git a/keyboards/percent/canoe_gen2/keyboard.json b/keyboards/percent/canoe_gen2/keyboard.json
index 0b6ece2613..85fbfd28b9 100644
--- a/keyboards/percent/canoe_gen2/keyboard.json
+++ b/keyboards/percent/canoe_gen2/keyboard.json
@@ -22,6 +22,10 @@
"resync": true
}
},
+ "indicators": {
+ "caps_lock": "E6",
+ "on_state": 0
+ },
"ws2812": {
"pin": "B7"
},
diff --git a/keyboards/pica40/rev2/rev2.c b/keyboards/pica40/rev2/rev2.c
index 0ba9a53734..b5d79508fc 100644
--- a/keyboards/pica40/rev2/rev2.c
+++ b/keyboards/pica40/rev2/rev2.c
@@ -6,8 +6,8 @@
#ifdef ENCODER_ENABLE // code based on encoder.c
-#define ENCODER_PIN_A (((pin_t[])ENCODERS_PAD_A)[0])
-#define ENCODER_PIN_B (((pin_t[])ENCODERS_PAD_B)[0])
+#define ENCODER_PIN_A (((pin_t[])ENCODER_A_PINS)[0])
+#define ENCODER_PIN_B (((pin_t[])ENCODER_B_PINS)[0])
// custom handler that returns encoder B pin status from slave side
void encoder_sync_slave_handler(uint8_t in_buflen, const void *in_data, uint8_t out_buflen, void *out_data) {
diff --git a/keyboards/planck/rev7/keymaps/default/config.h b/keyboards/planck/rev7/keymaps/default/config.h
index fbbab996e1..937d6a5e41 100644
--- a/keyboards/planck/rev7/keymaps/default/config.h
+++ b/keyboards/planck/rev7/keymaps/default/config.h
@@ -41,3 +41,10 @@
- etc.
*/
// #define MIDI_ADVANCED
+
+/*
+ * Encoder options
+ */
+// #define PLANCK_ENCODER_SETTLE_PIN_STATE_DELAY 20
+// #define ENCODER_MAP_KEY_DELAY 10
+// #define ENCODER_RESOLUTION 4
diff --git a/keyboards/planck/rev7/keymaps/default/keymap.c b/keyboards/planck/rev7/keymaps/default/keymap.c
index 4ac4c0de4f..85f5097332 100644
--- a/keyboards/planck/rev7/keymaps/default/keymap.c
+++ b/keyboards/planck/rev7/keymaps/default/keymap.c
@@ -147,13 +147,69 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT_planck_grid(
- _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
+ _______, QK_BOOT, DB_TOGG, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_SPDU, UG_SPDD, KC_DEL ,
_______, EE_CLR, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______,
_______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
+
+#ifdef ENCODER_MAP_ENABLE
+/* Rotary Encoders
+ */
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ /* Qwerty
+ * v- (index) Clockwise / Counter Clockwise v- (index) Clockwise / Counter Clockwise
+ * ,---------------------------------------------------------------------------------------.
+ * | (0) Vol- / Vol+ | | | | | | | | | | | (4) Vol- / Vol+ |
+ * |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
+ * | (1) KC_MNXT / KC_MPRV | | | | | | | | | | | (5) KC_MNXT / KC_MPRV |
+ * |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
+ * | (2) KC_WBAK / KC_WFWD | | | | | | | | | | | (6) KC_SPC / KC_ENT |
+ * |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
+ * | (3) KC_LEFT / KC_RGHT | | | | | | | | | | (7) KC_DOWN / KC_UP |
+ * `---------------------------------------------------------------------------------------'
+ */
+ [_QWERTY] = {
+ // LEFT SIDE (index 0 to 3)
+ ENCODER_CCW_CW(KC_VOLU, KC_VOLD),
+ ENCODER_CCW_CW(KC_MNXT, KC_MPRV),
+ ENCODER_CCW_CW(KC_WBAK, KC_WFWD),
+ ENCODER_CCW_CW(KC_LEFT, KC_RGHT),
+ // RIGHT SIDE (index 4 to 7)
+ ENCODER_CCW_CW(KC_VOLU, KC_VOLD),
+ ENCODER_CCW_CW(KC_MNXT, KC_MPRV),
+ ENCODER_CCW_CW(KC_SPC, KC_ENT),
+ ENCODER_CCW_CW(KC_DOWN, KC_UP)
+ },
+
+ /* Adjust (Lower + Raise)
+ * v- (index) Clockwise / Counter Clockwise v- (index) Clockwise / Counter Clockwise
+ * ,---------------------------------------------------------------------------------------.
+ * | (0) _______ / _______ | | | | | | | | | | | (4) _______ / _______ |
+ * |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
+ * | (1) _______ / _______ | | | | | | | | | | | (5) _______ / _______ |
+ * |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
+ * | (2) UG_NEXT / UG_PREV | | | | | | | | | | | (6) SAT- / SAT+ |
+ * |-----------------------+---+---+---+---+---+---+---+---+---+---+-----------------------|
+ * | (3) UG_VALD / UG_VALU | | | | | | | | | | (7) HUE- / HUE+ |
+ * `---------------------------------------------------------------------------------------'
+ */
+ [_ADJUST] = {
+ // LEFT SIDE (index 0 to 3)
+ ENCODER_CCW_CW(_______, _______),
+ ENCODER_CCW_CW(_______, _______),
+ ENCODER_CCW_CW(UG_NEXT, UG_PREV),
+ ENCODER_CCW_CW(UG_VALD, UG_VALU),
+ // RIGHT SIDE (index 4 to 7)
+ ENCODER_CCW_CW(_______, _______),
+ ENCODER_CCW_CW(_______, _______),
+ ENCODER_CCW_CW(UG_SATD, UG_SATU),
+ ENCODER_CCW_CW(UG_HUEU, UG_HUED)
+ }
+};
+#endif
/* clang-format on */
#ifdef AUDIO_ENABLE
@@ -161,11 +217,18 @@ float plover_song[][2] = SONG(PLOVER_SOUND);
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
#endif
+bool play_encoder_melody(uint8_t index, bool clockwise);
+
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+#ifdef ENCODER_MAP_ENABLE
+ if (IS_ENCODEREVENT(record->event) && record->event.pressed) {
+ play_encoder_melody(record->event.key.col, record->event.type == ENCODER_CCW_EVENT);
+ }
+#endif
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
@@ -228,13 +291,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
/* clang-format off */
float melody[8][2][2] = {
- {{440.0f, 8}, {440.0f, 24}},
- {{440.0f, 8}, {440.0f, 24}},
- {{440.0f, 8}, {440.0f, 24}},
- {{440.0f, 8}, {440.0f, 24}},
- {{440.0f, 8}, {440.0f, 24}},
- {{440.0f, 8}, {440.0f, 24}},
- {{440.0f, 8}, {440.0f, 24}},
+ {{440.0f, 8}, {440.0f, 24}},
+ {{440.0f, 8}, {440.0f, 24}},
+ {{440.0f, 8}, {440.0f, 24}},
+ {{440.0f, 8}, {440.0f, 24}},
+ {{440.0f, 8}, {440.0f, 24}},
+ {{440.0f, 8}, {440.0f, 24}},
+ {{440.0f, 8}, {440.0f, 24}},
{{440.0f, 8}, {440.0f, 24}},
};
/* clang-format on */
@@ -251,7 +314,7 @@ float melody[8][2][2] = {
#define ET12_MAJOR_THIRD 1.259921
#define ET12_PERFECT_FOURTH 1.33484
#define ET12_TRITONE 1.414214
-#define ET12_PERFECT_FIFTH 1.498307
+#define ET12_PERFECT_FIFTH 1.498307
deferred_token tokens[8];
@@ -260,7 +323,7 @@ uint32_t reset_note(uint32_t trigger_time, void *note) {
return 0;
}
-bool encoder_update_user(uint8_t index, bool clockwise) {
+bool play_encoder_melody(uint8_t index, bool clockwise) {
cancel_deferred_exec(tokens[index]);
if (clockwise) {
melody[index][1][0] = melody[index][1][0] * ET12_MINOR_SECOND;
@@ -275,6 +338,10 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
return false;
}
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ return play_encoder_melody(index, clockwise);
+}
+
bool dip_switch_update_user(uint8_t index, bool active) {
switch (index) {
case 0: {
@@ -303,4 +370,4 @@ bool dip_switch_update_user(uint8_t index, bool active) {
}
}
return true;
-} \ No newline at end of file
+}
diff --git a/keyboards/planck/rev7/matrix.c b/keyboards/planck/rev7/matrix.c
index 777bd6a7fe..44f532db65 100644
--- a/keyboards/planck/rev7/matrix.c
+++ b/keyboards/planck/rev7/matrix.c
@@ -111,13 +111,21 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) {
return changed;
}
+#if defined(ENCODER_ENABLE) || defined(ENCODER_MAP_ENABLE)
+#if !defined(PLANCK_ENCODER_SETTLE_PIN_STATE_DELAY)
+# define PLANCK_ENCODER_SETTLE_PIN_STATE_DELAY 10
+#endif
+
+void encoder_quadrature_init_pin(uint8_t index, bool pad_b) {
+}
+
uint8_t encoder_quadrature_read_pin(uint8_t index, bool pad_b) {
- pin_t pin = pad_b ? B13: B12;
- gpio_set_pin_input_high(pin);
- gpio_write_pin_low(matrix_row_pins[index]);
- wait_us(10);
- uint8_t ret = gpio_read_pin(pin) ? 1 : 0;
- gpio_set_pin_input_low(matrix_row_pins[index]);
- gpio_set_pin_input_low(pin);
+ pin_t col_pin = pad_b ? B13 : B12;
+ gpio_set_pin_output(col_pin);
+ gpio_write_pin_high(col_pin);
+ wait_us(PLANCK_ENCODER_SETTLE_PIN_STATE_DELAY);
+ uint8_t ret = gpio_read_pin(matrix_row_pins[index]) ? 0 : 1;
+ gpio_set_pin_input_low(col_pin);
return ret;
}
+#endif // ENCODER_ENABLE || ENCODER_MAP_ENABLE
diff --git a/keyboards/planck/rev7/readme.md b/keyboards/planck/rev7/readme.md
index 6a4df37704..940976bfce 100644
--- a/keyboards/planck/rev7/readme.md
+++ b/keyboards/planck/rev7/readme.md
@@ -14,7 +14,8 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
## Encoders
-Encoders must have matching pulse & detent resolutions (e.g. 24/24) for the scanning to work properly. Multiple encoders can be used at the same time, and are zero-indexed (compared to being one-indexed on the PCB's silkscreen) in the `encoder_update_user(uint8_t index, bool clockwise)` function:
+Encoders must have matching pulse & detent resolutions (e.g. 24/24) for the scanning to work properly. Multiple encoders can be used at the same time.
+If an encoder has a switch built-in, it's connected to the key at that location with index number:
```
,-----------------------------------------------------------------------------------.
@@ -28,7 +29,35 @@ Encoders must have matching pulse & detent resolutions (e.g. 24/24) for the scan
`-----------------------------------------------------------------------------------'
```
-If an encoder has a switch built-in, it's connected to the key at that location. On the default keymap, each encoder will play its own rising/falling tone sequence when rotated, and will reset the pitch after one second of inactivity. The encoder map feature is not currently supported.
+Planck rev7 supports `ENCODER_ENABLE` and `ENCODER_MAP_ENABLE`. If both `ENCODER_MAP_ENABLE` and `ENCODER_ENABLE` are defined, `ENCODER_MAP_ENABLE` takes precedence. On the default keymap, each encoder will play its own rising/falling tone sequence when rotated, and will reset the pitch after one second of inactivity.
+
+### With ENCODER_ENABLE
+
+Define it as follows in `rules.mk`:
+
+```
+ENCODER_ENABLE = yes
+```
+
+Zero-indexed (compared to being one-indexed on the PCB's silkscreen) in the `encoder_update_user(uint8_t index, bool clockwise)` function.
+
+### With ENCODER_MAP_ENABLE
+
+Define it as follows in `rules.mk`:
+
+```
+ENCODER_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
+```
+
+If you enable `ENCODER_MAP_ENABLE`, define `const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS]` and configure your keycodes. If you enable `ENCODER_MAP_ENABLE`, `encoder_update_user` is not used directly.
+
+Additionally, you can use the following `config.h` options:
+
+```c
+#define ENCODER_MAP_KEY_DELAY 10
+#define ENCODER_RESOLUTION 4
+```
## Some Planck-specific config.h options:
@@ -37,6 +66,6 @@ If an encoder has a switch built-in, it's connected to the key at that location.
#define PLANCK_WATCHDOG_TIMEOUT 1.0
// disables the watchdog timer - you may want to disable the watchdog timer if you use longer macros
#define PLANCK_WATCHDOG_DISABLE
-// the resolution of the encoders used in the encoder matrix
-#define PLANCK_ENCODER_RESOLUTION 4
+// Sets the time to wait for the rotary encoder pin state to stabilize while scanning (Default is 20(us))
+#define PLANCK_ENCODER_SETTLE_PIN_STATE_DELAY 20
```
diff --git a/keyboards/ploopyco/mouse/config.h b/keyboards/ploopyco/mouse/config.h
index 0375a8875a..0f8774dcd7 100644
--- a/keyboards/ploopyco/mouse/config.h
+++ b/keyboards/ploopyco/mouse/config.h
@@ -38,5 +38,5 @@
/* Custom encoder needs to specify just how many encoders we have */
#define NUM_ENCODERS 1
-#define ENCODERS_PAD_A { F0 }
-#define ENCODERS_PAD_B { F4 }
+#define ENCODER_A_PINS { F0 }
+#define ENCODER_B_PINS { F4 }
diff --git a/keyboards/ploopyco/ploopyco.c b/keyboards/ploopyco/ploopyco.c
index e4726238f2..a6f76203d6 100644
--- a/keyboards/ploopyco/ploopyco.c
+++ b/keyboards/ploopyco/ploopyco.c
@@ -71,8 +71,8 @@ float scroll_accumulated_v = 0;
#ifdef ENCODER_ENABLE
uint16_t lastScroll = 0; // Previous confirmed wheel event
uint16_t lastMidClick = 0; // Stops scrollwheel from being read if it was pressed
-pin_t encoder_pins_a[1] = ENCODERS_PAD_A;
-pin_t encoder_pins_b[1] = ENCODERS_PAD_B;
+pin_t encoder_pins_a[1] = ENCODER_A_PINS;
+pin_t encoder_pins_b[1] = ENCODER_B_PINS;
bool debug_encoder = false;
bool encoder_update_kb(uint8_t index, bool clockwise) {
diff --git a/keyboards/ploopyco/trackball/config.h b/keyboards/ploopyco/trackball/config.h
index 80457d062a..2aac27437a 100644
--- a/keyboards/ploopyco/trackball/config.h
+++ b/keyboards/ploopyco/trackball/config.h
@@ -38,5 +38,5 @@
/* Custom encoder needs to specify just how many encoders we have */
#define NUM_ENCODERS 1
-#define ENCODERS_PAD_A { F0 }
-#define ENCODERS_PAD_B { F4 }
+#define ENCODER_A_PINS { F0 }
+#define ENCODER_B_PINS { F4 }
diff --git a/keyboards/ploopyco/trackball_mini/config.h b/keyboards/ploopyco/trackball_mini/config.h
index c5d2d5694e..2e0b570bba 100644
--- a/keyboards/ploopyco/trackball_mini/config.h
+++ b/keyboards/ploopyco/trackball_mini/config.h
@@ -38,5 +38,5 @@
/* Custom encoder needs to specify just how many encoders we have */
#define NUM_ENCODERS 1
-#define ENCODERS_PAD_A { F0 }
-#define ENCODERS_PAD_B { F4 }
+#define ENCODER_A_PINS { F0 }
+#define ENCODER_B_PINS { F4 }
diff --git a/keyboards/ploopyco/trackball_thumb/config.h b/keyboards/ploopyco/trackball_thumb/config.h
index 631456d9d3..f03ffc7699 100644
--- a/keyboards/ploopyco/trackball_thumb/config.h
+++ b/keyboards/ploopyco/trackball_thumb/config.h
@@ -42,5 +42,5 @@
/* Custom encoder needs to specify just how many encoders we have */
#define NUM_ENCODERS 1
-#define ENCODERS_PAD_A { F4 }
-#define ENCODERS_PAD_B { F0 }
+#define ENCODER_A_PINS { F4 }
+#define ENCODER_B_PINS { F0 }
diff --git a/keyboards/pom_keyboards/tnln95/keyboard.json b/keyboards/pom_keyboards/tnln95/keyboard.json
index c92ac5b38f..09b3f71f7c 100644
--- a/keyboards/pom_keyboards/tnln95/keyboard.json
+++ b/keyboards/pom_keyboards/tnln95/keyboard.json
@@ -37,6 +37,10 @@
"levels": 10,
"breathing": true
},
+ "indicators": {
+ "caps_lock": "B2",
+ "num_lock": "B1"
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/pom_keyboards/tnln95/tnln95.c b/keyboards/pom_keyboards/tnln95/tnln95.c
deleted file mode 100644
index b8ab8ff7a7..0000000000
--- a/keyboards/pom_keyboards/tnln95/tnln95.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2020 Nguyen Minh Hoang
- *
- * 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 "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(B1);
- gpio_set_pin_output(B2);
- /* I will add function to these later */
- // gpio_set_pin_output(B3);
- // gpio_set_pin_output(E2);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(B1, led_state.num_lock);
- gpio_write_pin(B2, led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/projectd/75/ansi/ansi.c b/keyboards/projectd/75/ansi/ansi.c
index 8257cf39c2..3bb695b559 100644
--- a/keyboards/projectd/75/ansi/ansi.c
+++ b/keyboards/projectd/75/ansi/ansi.c
@@ -162,6 +162,9 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
}
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ if (!process_record_user(keycode, record)) {
+ return false;
+ }
switch (keycode) {
diff --git a/keyboards/projectkb/alice/alice.c b/keyboards/projectkb/alice/alice.c
deleted file mode 100644
index 8ec5f16736..0000000000
--- a/keyboards/projectkb/alice/alice.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#include "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(INDICATOR_PIN_0);
- gpio_set_pin_output(INDICATOR_PIN_1);
- gpio_set_pin_output(INDICATOR_PIN_2);
-
- keyboard_pre_init_user();
-}
-
-
-bool led_update_kb(led_t led_state) {
- bool runDefault = led_update_user(led_state);
- if (runDefault) {
- gpio_write_pin(INDICATOR_PIN_0, !led_state.num_lock);
- gpio_write_pin(INDICATOR_PIN_1, !led_state.caps_lock);
- gpio_write_pin(INDICATOR_PIN_2, !led_state.scroll_lock);
- }
- return runDefault;
-}
diff --git a/keyboards/projectkb/alice/rev1/config.h b/keyboards/projectkb/alice/rev1/config.h
index 66d3b75731..b8c68bc65d 100644
--- a/keyboards/projectkb/alice/rev1/config.h
+++ b/keyboards/projectkb/alice/rev1/config.h
@@ -26,10 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
-#define INDICATOR_PIN_0 A0
-#define INDICATOR_PIN_1 A1
-#define INDICATOR_PIN_2 A2
-
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/projectkb/alice/rev1/keyboard.json b/keyboards/projectkb/alice/rev1/keyboard.json
index 7e957d7ff4..01eee1300b 100644
--- a/keyboards/projectkb/alice/rev1/keyboard.json
+++ b/keyboards/projectkb/alice/rev1/keyboard.json
@@ -15,6 +15,11 @@
"resync": true
}
},
+ "indicators": {
+ "caps_lock": "A1",
+ "num_lock": "A0",
+ "scroll_lock": "A2"
+ },
"rgblight": {
"led_count": 14,
"animations": {
diff --git a/keyboards/projectkb/alice/rev2/config.h b/keyboards/projectkb/alice/rev2/config.h
index 3e786c1805..b8c68bc65d 100644
--- a/keyboards/projectkb/alice/rev2/config.h
+++ b/keyboards/projectkb/alice/rev2/config.h
@@ -26,10 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
-#define INDICATOR_PIN_0 A9
-#define INDICATOR_PIN_1 A8
-#define INDICATOR_PIN_2 B12
-
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/projectkb/alice/rev2/keyboard.json b/keyboards/projectkb/alice/rev2/keyboard.json
index 639fc26877..0e34b7104f 100644
--- a/keyboards/projectkb/alice/rev2/keyboard.json
+++ b/keyboards/projectkb/alice/rev2/keyboard.json
@@ -15,6 +15,11 @@
"resync": true
}
},
+ "indicators": {
+ "caps_lock": "A8",
+ "num_lock": "A9",
+ "scroll_lock": "B12"
+ },
"rgblight": {
"led_count": 14,
"animations": {
diff --git a/keyboards/punk75/keyboard.json b/keyboards/punk75/keyboard.json
index dd084a147c..c7082e564f 100644
--- a/keyboards/punk75/keyboard.json
+++ b/keyboards/punk75/keyboard.json
@@ -32,6 +32,10 @@
{"pin_a": "B1", "pin_b": "B0"}
]
},
+ "indicators": {
+ "caps_lock": "A0",
+ "on_state": 0
+ },
"processor": "atmega32a",
"bootloader": "usbasploader",
"community_layouts": ["ortho_5x15"],
diff --git a/keyboards/punk75/keymaps/default/keymap.c b/keyboards/punk75/keymaps/default/keymap.c
index 9a6ef29307..57f00e1e61 100644
--- a/keyboards/punk75/keymaps/default/keymap.c
+++ b/keyboards/punk75/keymaps/default/keymap.c
@@ -74,7 +74,7 @@ void led_keypress_update(pin_t led_pin, uint16_t keycode, keyrecord_t *record) {
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// Update LED state
- led_keypress_update(LED, keycode, record);
+ led_keypress_update(LED_CAPS_LOCK_PIN, keycode, record);
return true;
}
diff --git a/keyboards/punk75/keymaps/via/keymap.c b/keyboards/punk75/keymaps/via/keymap.c
index 72ef91fd37..214135b55d 100644
--- a/keyboards/punk75/keymaps/via/keymap.c
+++ b/keyboards/punk75/keymaps/via/keymap.c
@@ -69,7 +69,7 @@ void led_keypress_update(pin_t led_pin, uint16_t keycode, keyrecord_t *record) {
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// Update LED state
- led_keypress_update(LED, keycode, record);
+ led_keypress_update(LED_CAPS_LOCK_PIN, keycode, record);
return true;
}
diff --git a/keyboards/punk75/punk75.c b/keyboards/punk75/punk75.c
deleted file mode 100644
index 8d9d09d43c..0000000000
--- a/keyboards/punk75/punk75.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright 2020 dsanchezseco
- *
- * 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 "quantum.h"
-
-void matrix_init_kb(void) {
- // Set our LED pin as output
- gpio_set_pin_output(LED);
-
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(LED, !led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/quad_h/lb75/keyboard.json b/keyboards/quad_h/lb75/keyboard.json
index 0a51d4f47f..e88ba4b3a4 100644
--- a/keyboards/quad_h/lb75/keyboard.json
+++ b/keyboards/quad_h/lb75/keyboard.json
@@ -33,6 +33,11 @@
"pin": "B7",
"levels": 5
},
+ "indicators": {
+ "caps_lock": "B1",
+ "scroll_lock": "B2",
+ "on_state": 0
+ },
"ws2812": {
"pin": "B0"
},
diff --git a/keyboards/quad_h/lb75/lb75.c b/keyboards/quad_h/lb75/lb75.c
deleted file mode 100644
index ef716092b9..0000000000
--- a/keyboards/quad_h/lb75/lb75.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2019 Ryota Goto
- *
- * 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 "quantum.h"
-
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
-
- gpio_set_pin_output(B1);
- gpio_set_pin_output(B2);
-
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
-
- if(res) {
- gpio_write_pin(B1, !led_state.caps_lock);
- gpio_write_pin(B2, !led_state.scroll_lock);
- }
-
- return res;
-}
-
diff --git a/keyboards/redscarf_i/keyboard.json b/keyboards/redscarf_i/keyboard.json
index 0a268169ef..6a186dff0b 100644
--- a/keyboards/redscarf_i/keyboard.json
+++ b/keyboards/redscarf_i/keyboard.json
@@ -25,6 +25,10 @@
"backlight": {
"pin": "B5"
},
+ "indicators": {
+ "num_lock": "F7",
+ "on_state": 0
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": ["ortho_5x4", "ortho_6x4", "numpad_5x4", "numpad_6x4"],
diff --git a/keyboards/redscarf_i/redscarf_i.c b/keyboards/redscarf_i/redscarf_i.c
index 949bc362ad..7544b89d17 100644
--- a/keyboards/redscarf_i/redscarf_i.c
+++ b/keyboards/redscarf_i/redscarf_i.c
@@ -18,21 +18,13 @@
void keyboard_pre_init_kb(void) {
// initialize top row leds
- gpio_set_pin_output(F7);
gpio_set_pin_output(F6);
gpio_set_pin_output(F5);
// and then turn them off
- gpio_write_pin_high(F7);
gpio_write_pin_high(F6);
gpio_write_pin_high(F5);
-}
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(F7, !led_state.num_lock);
- }
- return res;
+ keyboard_pre_init_user();
}
layer_state_t layer_state_set_kb(layer_state_t state) {
diff --git a/keyboards/rgbkb/sol/keymaps/default/keymap.c b/keyboards/rgbkb/sol/keymaps/default/keymap.c
index 4a6511cbfc..8997e9a582 100644
--- a/keyboards/rgbkb/sol/keymaps/default/keymap.c
+++ b/keyboards/rgbkb/sol/keymaps/default/keymap.c
@@ -201,7 +201,7 @@ const rgb_matrix_f rgb_matrix_functions[6][2] = {
#ifdef ENCODER_ENABLE
-static pin_t encoders_pad_a[] = ENCODERS_PAD_A;
+static pin_t encoders_pad_a[] = ENCODER_A_PINS;
#define NUMBER_OF_ENCODERS ARRAY_SIZE(encoders_pad_a)
const uint16_t PROGMEM encoders[][NUMBER_OF_ENCODERS * 2][2] = {
diff --git a/keyboards/rgbkb/sol/rev2/config.h b/keyboards/rgbkb/sol/rev2/config.h
index ab5150051a..5867c6dfe3 100644
--- a/keyboards/rgbkb/sol/rev2/config.h
+++ b/keyboards/rgbkb/sol/rev2/config.h
@@ -49,12 +49,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// Encoder support
#ifndef EXTRA_ENCODERS_ENABLE
-#define ENCODERS_PAD_A { D2 }
-#define ENCODERS_PAD_B { D6 }
+#define ENCODER_A_PINS { D2 }
+#define ENCODER_B_PINS { D6 }
#else
#ifdef OLED_ENABLE
#error Extra encoders cannot be enabled at the same time as the OLED Driver as they use the same pins.
#endif
-#define ENCODERS_PAD_A { D2, D1, B0 }
-#define ENCODERS_PAD_B { D6, B1, D0 }
+#define ENCODER_A_PINS { D2, D1, B0 }
+#define ENCODER_B_PINS { D6, B1, D0 }
#endif
diff --git a/keyboards/rmi_kb/wete/v1/keyboard.json b/keyboards/rmi_kb/wete/v1/keyboard.json
index 8e8059c103..c9a54f76c2 100644
--- a/keyboards/rmi_kb/wete/v1/keyboard.json
+++ b/keyboards/rmi_kb/wete/v1/keyboard.json
@@ -35,6 +35,12 @@
"levels": 24,
"breathing": true
},
+ "indicators": {
+ "caps_lock": "B3",
+ "num_lock": "A14",
+ "scroll_lock": "A15",
+ "on_state": 0
+ },
"rgblight": {
"led_count": 24,
"animations": {
diff --git a/keyboards/rmi_kb/wete/v1/v1.c b/keyboards/rmi_kb/wete/v1/v1.c
deleted file mode 100644
index 34a0917468..0000000000
--- a/keyboards/rmi_kb/wete/v1/v1.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2020 Ramon Imbao
- *
- * 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 "quantum.h"
-
-void keyboard_pre_init_user(void) {
- // Initialize indicator LED pins
- gpio_set_pin_output(A14); // Num Lock
- gpio_set_pin_output(A15); // Scroll Lock
- gpio_set_pin_output(B3); // Caps Lock
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if (res) {
- gpio_write_pin(A14, !led_state.num_lock);
- gpio_write_pin(A15, !led_state.scroll_lock);
- gpio_write_pin(B3, !led_state.caps_lock);
- }
-
- return res;
-}
diff --git a/keyboards/rubi/keyboard.json b/keyboards/rubi/keyboard.json
index cb94b58615..555376b533 100644
--- a/keyboards/rubi/keyboard.json
+++ b/keyboards/rubi/keyboard.json
@@ -22,6 +22,9 @@
"resync": true
}
},
+ "indicators": {
+ "caps_lock": "C6"
+ },
"matrix_pins": {
"cols": ["B3", "B2", "B1", "F7"],
"rows": ["F0", "F1", "F4", "F5", "F6"]
diff --git a/keyboards/rubi/rubi.c b/keyboards/rubi/rubi.c
index 89bf9caa6d..4f0536397f 100644
--- a/keyboards/rubi/rubi.c
+++ b/keyboards/rubi/rubi.c
@@ -63,12 +63,3 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
return process_record_user_oled(keycode, record);
}
-
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if (res) {
- gpio_write_pin(C6, led_state.num_lock);
- }
- return true;
-}
diff --git a/keyboards/sirius/unigo66/custom_matrix.cpp b/keyboards/sirius/unigo66/custom_matrix.cpp
index 25648a5f78..879a0e7c15 100644
--- a/keyboards/sirius/unigo66/custom_matrix.cpp
+++ b/keyboards/sirius/unigo66/custom_matrix.cpp
@@ -216,7 +216,6 @@ extern "C"
kbd2.SetReport(0, 0, 2, 0, 1, &usb_led);
kbd3.SetReport(0, 0, 2, 0, 1, &usb_led);
kbd4.SetReport(0, 0, 2, 0, 1, &usb_led);
- led_set_user(usb_led);
led_update_kb((led_t){.raw = usb_led});
}
diff --git a/keyboards/sneakbox/aliceclone/aliceclone.c b/keyboards/sneakbox/aliceclone/aliceclone.c
deleted file mode 100644
index 74d19e515c..0000000000
--- a/keyboards/sneakbox/aliceclone/aliceclone.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-Copyright 2020 Bryan Ong
-
-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 "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(D7);
- gpio_set_pin_output(D6);
- gpio_set_pin_output(D4);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(D7, led_state.num_lock);
- gpio_write_pin(D6, led_state.caps_lock);
- gpio_write_pin(D4, led_state.scroll_lock);
- }
- return res;
-}
diff --git a/keyboards/sneakbox/aliceclone/keyboard.json b/keyboards/sneakbox/aliceclone/keyboard.json
index 869b8bd20b..bb0cd8e4b8 100644
--- a/keyboards/sneakbox/aliceclone/keyboard.json
+++ b/keyboards/sneakbox/aliceclone/keyboard.json
@@ -36,6 +36,11 @@
"bootmagic": {
"matrix": [2, 0]
},
+ "indicators": {
+ "caps_lock": "D6",
+ "num_lock": "D7",
+ "scroll_lock": "D4"
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": ["alice", "alice_split_bs"],
diff --git a/keyboards/splitkb/kyria/info.json b/keyboards/splitkb/kyria/info.json
index f70e8e3bb2..050e12f2ff 100644
--- a/keyboards/splitkb/kyria/info.json
+++ b/keyboards/splitkb/kyria/info.json
@@ -6,7 +6,6 @@
"vid": "0x8D1D",
"device_version": "1.0.0"
},
- "development_board": "elite_c",
"split": {
"enabled": true
},
diff --git a/keyboards/splitkb/kyria/rev1/base/keyboard.json b/keyboards/splitkb/kyria/rev1/base/keyboard.json
index 9f75b9c218..df92d71ad1 100644
--- a/keyboards/splitkb/kyria/rev1/base/keyboard.json
+++ b/keyboards/splitkb/kyria/rev1/base/keyboard.json
@@ -1,5 +1,26 @@
{
- "build": {
- "lto": true
+ "development_board": "elite_c",
+ "matrix_pins": {
+ "cols": ["B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4"],
+ "rows": ["B4", "E6", "D7", "D4"]
+ },
+ "diode_direction": "COL2ROW",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "C6", "pin_b": "B5"}
+ ]
+ },
+ "split": {
+ "soft_serial_pin": "D2",
+ "encoder": {
+ "right": {
+ "rotary": [
+ {"pin_a": "B5", "pin_b": "C6"}
+ ]
+ }
+ }
+ },
+ "ws2812": {
+ "pin": "D3"
}
}
diff --git a/keyboards/splitkb/kyria/rev1/config.h b/keyboards/splitkb/kyria/rev1/config.h
index 4f130293e2..615d93496d 100644
--- a/keyboards/splitkb/kyria/rev1/config.h
+++ b/keyboards/splitkb/kyria/rev1/config.h
@@ -17,31 +17,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-/*
- * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
- */
-
-#if defined(CONVERT_TO_PROTON_C)
-# define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
-# define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve.
-# define SERIAL_USART_DRIVER SD1 // USART driver of TX pin. default: SD1
-# define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
-# define SERIAL_USART_TX_PIN D3
-# define SERIAL_USART_RX_PIN D2
-
-# define WS2812_DI_PIN PAL_LINE(GPIOA, 3)
-# define WS2812_PWM_DRIVER PWMD2 // default: PWMD2
-# define WS2812_PWM_CHANNEL 4 // default: 2
-# define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
-# define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
-# define WS2812_PWM_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
-# define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM2_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU.
-#else
-# define WS2812_DI_PIN D3
-# define SOFT_SERIAL_PIN D2
-#endif
-
-#ifdef OLED_ENABLE
-# define OLED_DISPLAY_128X64
-# define SPLIT_OLED_ENABLE
-#endif
+#define OLED_DISPLAY_128X64
+#define SPLIT_OLED_ENABLE
diff --git a/keyboards/splitkb/kyria/rev1/info.json b/keyboards/splitkb/kyria/rev1/info.json
index 3d84b37b31..1e21c60978 100644
--- a/keyboards/splitkb/kyria/rev1/info.json
+++ b/keyboards/splitkb/kyria/rev1/info.json
@@ -23,24 +23,7 @@
"sleep": true,
"split_count": [10, 10]
},
- "matrix_pins": {
- "cols": ["B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4"],
- "rows": ["B4", "E6", "D7", "D4"]
- },
- "diode_direction": "COL2ROW",
- "encoder": {
- "rotary": [
- {"pin_a": "C6", "pin_b": "B5"}
- ]
- },
"split": {
- "encoder": {
- "right": {
- "rotary": [
- {"pin_a": "B5", "pin_b": "C6"}
- ]
- }
- },
"transport": {
"sync": {
"matrix_state": true
diff --git a/keyboards/splitkb/kyria/rev1/proton_c/config.h b/keyboards/splitkb/kyria/rev1/proton_c/config.h
new file mode 100644
index 0000000000..df2eb96ae2
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev1/proton_c/config.h
@@ -0,0 +1,17 @@
+// Copyright 2024 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
+#define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve.
+#define SERIAL_USART_DRIVER SD1 // USART driver of TX pin. default: SD1
+#define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
+#define SERIAL_USART_TX_PIN A9
+#define SERIAL_USART_RX_PIN A10
+
+#define WS2812_PWM_CHANNEL 4
+#define WS2812_PWM_PAL_MODE 1
+#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
+#define WS2812_PWM_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
+#define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM2_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU.
diff --git a/keyboards/splitkb/kyria/rev1/proton_c/keyboard.json b/keyboards/splitkb/kyria/rev1/proton_c/keyboard.json
index 6cc38d4a21..a7181fef8d 100644
--- a/keyboards/splitkb/kyria/rev1/proton_c/keyboard.json
+++ b/keyboards/splitkb/kyria/rev1/proton_c/keyboard.json
@@ -1,5 +1,26 @@
{
+ "development_board": "proton_c",
+ "matrix_pins": {
+ "cols": ["B9", "B15", "B14", "B13", "B8", "A0", "A1", "A2"],
+ "rows": ["B1", "B2", "B3", "B5"]
+ },
+ "diode_direction": "COL2ROW",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "B4", "pin_b": "B0"}
+ ]
+ },
+ "split": {
+ "encoder": {
+ "right": {
+ "rotary": [
+ {"pin_a": "B0", "pin_b": "B4"}
+ ]
+ }
+ }
+ },
"ws2812": {
- "driver": "pwm"
+ "driver": "pwm",
+ "pin": "A3"
}
}
diff --git a/keyboards/splitkb/kyria/rev1/proton_c/rules.mk b/keyboards/splitkb/kyria/rev1/proton_c/rules.mk
index a58b20c575..c6e2988321 100644
--- a/keyboards/splitkb/kyria/rev1/proton_c/rules.mk
+++ b/keyboards/splitkb/kyria/rev1/proton_c/rules.mk
@@ -1,2 +1 @@
SERIAL_DRIVER = usart
-CONVERT_TO = proton_c
diff --git a/keyboards/splitkb/kyria/rev2/base/keyboard.json b/keyboards/splitkb/kyria/rev2/base/keyboard.json
index 9f75b9c218..8de0f335cc 100644
--- a/keyboards/splitkb/kyria/rev2/base/keyboard.json
+++ b/keyboards/splitkb/kyria/rev2/base/keyboard.json
@@ -1,5 +1,35 @@
{
- "build": {
- "lto": true
+ "development_board": "elite_c",
+ "matrix_pins": {
+ "cols": ["B2", "B6", "B5", "B4", "E6", "D7", "C6", "D4"],
+ "rows": ["F6", "F7", "B1", "B3"]
+ },
+ "diode_direction": "COL2ROW",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "F4", "pin_b": "F5"}
+ ]
+ },
+ "split": {
+ "handedness": {
+ "matrix_grid": ["E6", "B3"]
+ },
+ "soft_serial_pin": "D2",
+ "encoder": {
+ "right": {
+ "rotary": [
+ {"pin_a": "F5", "pin_b": "F4"}
+ ]
+ }
+ },
+ "matrix_pins": {
+ "right": {
+ "cols": ["B4", "B5", "B6", "B2", "B3", "B1", "F7", "F6"],
+ "rows": ["D4", "C6", "D7", "E6"]
+ }
+ }
+ },
+ "ws2812": {
+ "pin": "D3"
}
}
diff --git a/keyboards/splitkb/kyria/rev2/config.h b/keyboards/splitkb/kyria/rev2/config.h
index 54d8f0985a..fb9e7bb959 100644
--- a/keyboards/splitkb/kyria/rev2/config.h
+++ b/keyboards/splitkb/kyria/rev2/config.h
@@ -19,34 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// Side detection
// col 4 row 3 on right-hand-side
-#define SPLIT_HAND_MATRIX_GRID E6, B3 // row first because the board is col2row
#define MATRIX_MASKED // actual mask is defined by `matrix_mask` in `rev2.c`
-/*
- * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
- */
-
-#if defined(CONVERT_TO_PROTON_C)
-# define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
-# define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve.
-# define SERIAL_USART_DRIVER SD1 // USART driver of TX pin. default: SD1
-# define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
-# define SERIAL_USART_TX_PIN D3
-# define SERIAL_USART_RX_PIN D2
-
-# define WS2812_DI_PIN PAL_LINE(GPIOA, 3)
-# define WS2812_PWM_DRIVER PWMD2 // default: PWMD2
-# define WS2812_PWM_CHANNEL 4 // default: 2
-# define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
-# define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
-# define WS2812_PWM_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
-# define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM2_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU.
-#else
-# define WS2812_DI_PIN D3
-# define SOFT_SERIAL_PIN D2
-#endif
-
-#ifdef OLED_ENABLE
-# define OLED_DISPLAY_128X64
-# define SPLIT_OLED_ENABLE
-#endif
+#define OLED_DISPLAY_128X64
+#define SPLIT_OLED_ENABLE
diff --git a/keyboards/splitkb/kyria/rev2/info.json b/keyboards/splitkb/kyria/rev2/info.json
index 80f801e3d1..d1507a26b0 100644
--- a/keyboards/splitkb/kyria/rev2/info.json
+++ b/keyboards/splitkb/kyria/rev2/info.json
@@ -23,30 +23,7 @@
"sleep": true,
"split_count": [10, 10]
},
- "matrix_pins": {
- "cols": ["B2", "B6", "B5", "B4", "E6", "D7", "C6", "D4"],
- "rows": ["F6", "F7", "B1", "B3"]
- },
- "diode_direction": "COL2ROW",
- "encoder": {
- "rotary": [
- {"pin_a": "F4", "pin_b": "F5"}
- ]
- },
"split": {
- "encoder": {
- "right": {
- "rotary": [
- {"pin_a": "F5", "pin_b": "F4"}
- ]
- }
- },
- "matrix_pins": {
- "right": {
- "cols": ["B4", "B5", "B6", "B2", "B3", "B1", "F7", "F6"],
- "rows": ["D4", "C6", "D7", "E6"]
- }
- },
"transport": {
"sync": {
"matrix_state": true
diff --git a/keyboards/splitkb/kyria/rev2/proton_c/config.h b/keyboards/splitkb/kyria/rev2/proton_c/config.h
new file mode 100644
index 0000000000..df2eb96ae2
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev2/proton_c/config.h
@@ -0,0 +1,17 @@
+// Copyright 2024 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
+#define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve.
+#define SERIAL_USART_DRIVER SD1 // USART driver of TX pin. default: SD1
+#define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
+#define SERIAL_USART_TX_PIN A9
+#define SERIAL_USART_RX_PIN A10
+
+#define WS2812_PWM_CHANNEL 4
+#define WS2812_PWM_PAL_MODE 1
+#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
+#define WS2812_PWM_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
+#define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM2_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU.
diff --git a/keyboards/splitkb/kyria/rev2/proton_c/keyboard.json b/keyboards/splitkb/kyria/rev2/proton_c/keyboard.json
index 6cc38d4a21..43a3d532f2 100644
--- a/keyboards/splitkb/kyria/rev2/proton_c/keyboard.json
+++ b/keyboards/splitkb/kyria/rev2/proton_c/keyboard.json
@@ -1,5 +1,35 @@
{
+ "development_board": "proton_c",
+ "matrix_pins": {
+ "cols": ["B15", "B9", "B0", "B1", "B2", "B3", "B4", "B5"],
+ "rows": ["A0", "B8", "B13", "B14"]
+ },
+ "diode_direction": "COL2ROW",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "A2", "pin_b": "A1"}
+ ]
+ },
+ "split": {
+ "handedness": {
+ "matrix_grid": ["B2", "B14"]
+ },
+ "encoder": {
+ "right": {
+ "rotary": [
+ {"pin_a": "A1", "pin_b": "A2"}
+ ]
+ }
+ },
+ "matrix_pins": {
+ "right": {
+ "cols": ["B1", "B0", "B9", "B15", "B14", "B13", "B8", "A0"],
+ "rows": ["B5", "B4", "B3", "B2"]
+ }
+ }
+ },
"ws2812": {
- "driver": "pwm"
+ "driver": "pwm",
+ "pin": "A3"
}
}
diff --git a/keyboards/splitkb/kyria/rev2/proton_c/rules.mk b/keyboards/splitkb/kyria/rev2/proton_c/rules.mk
index a58b20c575..c6e2988321 100644
--- a/keyboards/splitkb/kyria/rev2/proton_c/rules.mk
+++ b/keyboards/splitkb/kyria/rev2/proton_c/rules.mk
@@ -1,2 +1 @@
SERIAL_DRIVER = usart
-CONVERT_TO = proton_c
diff --git a/keyboards/splitkb/kyria/rev3/config.h b/keyboards/splitkb/kyria/rev3/config.h
index b0a64320c6..7938384a78 100644
--- a/keyboards/splitkb/kyria/rev3/config.h
+++ b/keyboards/splitkb/kyria/rev3/config.h
@@ -20,8 +20,5 @@
// but can't yet be given a value
#define SPLIT_HAND_PIN B5
-// Not yet available in `info.json`
-#ifdef OLED_ENABLE
-# define OLED_DISPLAY_128X64
-# define SPLIT_OLED_ENABLE
-#endif
+#define OLED_DISPLAY_128X64
+#define SPLIT_OLED_ENABLE
diff --git a/keyboards/splitkb/kyria/rev3/keyboard.json b/keyboards/splitkb/kyria/rev3/keyboard.json
index 4a426cb206..750f87ae4b 100644
--- a/keyboards/splitkb/kyria/rev3/keyboard.json
+++ b/keyboards/splitkb/kyria/rev3/keyboard.json
@@ -1,14 +1,12 @@
{
"keyboard_name": "Kyria rev3",
+ "development_board": "elite_c",
"usb": {
"pid": "0xCF44"
},
"bootmagic": {
"matrix": [0, 6]
},
- "build": {
- "lto": true
- },
"features": {
"mousekey": true,
"bootmagic": true,
diff --git a/keyboards/switchplate/southpaw_65/keyboard.json b/keyboards/switchplate/southpaw_65/keyboard.json
index e4090e49c7..72c4c71097 100644
--- a/keyboards/switchplate/southpaw_65/keyboard.json
+++ b/keyboards/switchplate/southpaw_65/keyboard.json
@@ -29,6 +29,10 @@
"pin": "B5",
"levels": 10
},
+ "indicators": {
+ "caps_lock": "B6",
+ "on_state": 0
+ },
"rgblight": {
"led_count": 9,
"animations": {
diff --git a/keyboards/switchplate/southpaw_65/southpaw_65.c b/keyboards/switchplate/southpaw_65/southpaw_65.c
deleted file mode 100644
index dfe3665928..0000000000
--- a/keyboards/switchplate/southpaw_65/southpaw_65.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2019
- *
- * 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 "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(B6);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(B6, !led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/switchplate/southpaw_fullsize/keyboard.json b/keyboards/switchplate/southpaw_fullsize/keyboard.json
index ad897821c3..84942ccfa4 100644
--- a/keyboards/switchplate/southpaw_fullsize/keyboard.json
+++ b/keyboards/switchplate/southpaw_fullsize/keyboard.json
@@ -31,6 +31,12 @@
"backlight": {
"pin": "B7"
},
+ "indicators": {
+ "caps_lock": "D4",
+ "num_lock": "D3",
+ "scroll_lock": "D5",
+ "on_state": 0
+ },
"processor": "at90usb1286",
"bootloader": "atmel-dfu",
"layouts": {
diff --git a/keyboards/switchplate/southpaw_fullsize/southpaw_fullsize.c b/keyboards/switchplate/southpaw_fullsize/southpaw_fullsize.c
deleted file mode 100644
index 3d77e8722e..0000000000
--- a/keyboards/switchplate/southpaw_fullsize/southpaw_fullsize.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2020 Ryota Goto
- *
- * 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 "quantum.h"
-
-// Optional override functions below.
-// You can leave any or all of these undefined.
-// These are only required if you want to perform custom actions.
-
-#define INDICATOR_NUM D3
-#define INDICATOR_CAPS D4
-#define INDICATOR_SCR D5
-
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
-
- // D3 Numlock, D4 Capslock, D5 Scrlock
- gpio_set_pin_output(INDICATOR_NUM);
- gpio_set_pin_output(INDICATOR_CAPS);
- gpio_set_pin_output(INDICATOR_SCR);
-
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
- bool res = led_update_user(led_state);
- if (res)
- {
- gpio_write_pin(INDICATOR_NUM, !led_state.num_lock);
- gpio_write_pin(INDICATOR_CAPS, !led_state.caps_lock);
- gpio_write_pin(INDICATOR_SCR, !led_state.scroll_lock);
- }
- return res;
-}
-
diff --git a/keyboards/system76/launch_1/launch_1.c b/keyboards/system76/launch_1/launch_1.c
index 7a5000d9ba..630305194e 100644
--- a/keyboards/system76/launch_1/launch_1.c
+++ b/keyboards/system76/launch_1/launch_1.c
@@ -139,6 +139,8 @@ void matrix_init_kb(void) {
}
system76_ec_rgb_layer(layer_state);
+
+ matrix_init_user();
}
void matrix_scan_kb(void) {
@@ -238,9 +240,11 @@ layer_state_t layer_state_set_kb(layer_state_t layer_state) {
}
#ifdef CONSOLE_ENABLE
-void keyboard_post_init_user(void) {
+void keyboard_post_init_kb(void) {
debug_enable = true;
debug_matrix = false;
debug_keyboard = false;
+
+ keyboard_post_init_user();
}
#endif // CONSOLE_ENABLE
diff --git a/keyboards/takashicompany/dogtag/keyboard.json b/keyboards/takashicompany/dogtag/keyboard.json
index d65092ecca..675b8e6bd2 100644
--- a/keyboards/takashicompany/dogtag/keyboard.json
+++ b/keyboards/takashicompany/dogtag/keyboard.json
@@ -19,7 +19,7 @@
},
"matrix_pins": {
"cols": ["F4", "F5", "F6", "F7", "B1"],
- "rows": ["B2", "B6", "B3"]
+ "rows": ["B2", "B6"]
},
"diode_direction": "COL2ROW",
"encoder": {
@@ -34,7 +34,7 @@
"matrix_pins": {
"right": {
"cols": ["B1", "F7", "F6", "F5", "F4"],
- "rows": ["B2", "B6", "B3"]
+ "rows": ["B2", "B6"]
}
}
},
@@ -65,10 +65,10 @@
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
- {"matrix": [3, 1], "x": 8, "y": 0},
- {"matrix": [3, 2], "x": 9, "y": 0},
- {"matrix": [3, 3], "x": 10, "y": 0},
- {"matrix": [3, 4], "x": 11, "y": 0},
+ {"matrix": [2, 1], "x": 8, "y": 0},
+ {"matrix": [2, 2], "x": 9, "y": 0},
+ {"matrix": [2, 3], "x": 10, "y": 0},
+ {"matrix": [2, 4], "x": 11, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
@@ -76,11 +76,11 @@
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 2},
- {"matrix": [4, 0], "x": 7, "y": 2},
- {"matrix": [4, 1], "x": 8, "y": 1},
- {"matrix": [4, 2], "x": 9, "y": 1},
- {"matrix": [4, 3], "x": 10, "y": 1},
- {"matrix": [4, 4], "x": 11, "y": 1}
+ {"matrix": [3, 0], "x": 7, "y": 2},
+ {"matrix": [3, 1], "x": 8, "y": 1},
+ {"matrix": [3, 2], "x": 9, "y": 1},
+ {"matrix": [3, 3], "x": 10, "y": 1},
+ {"matrix": [3, 4], "x": 11, "y": 1}
]
}
}
diff --git a/keyboards/team0110/p1800fl/keyboard.json b/keyboards/team0110/p1800fl/keyboard.json
index a56864cd36..681482db5b 100644
--- a/keyboards/team0110/p1800fl/keyboard.json
+++ b/keyboards/team0110/p1800fl/keyboard.json
@@ -34,6 +34,11 @@
"levels": 5,
"breathing": true
},
+ "indicators": {
+ "caps_lock": "D5",
+ "num_lock": "D3",
+ "scroll_lock": "C6"
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/team0110/p1800fl/p1800fl.c b/keyboards/team0110/p1800fl/p1800fl.c
deleted file mode 100644
index 9f47b8a5c4..0000000000
--- a/keyboards/team0110/p1800fl/p1800fl.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2020 marhalloweenvt
- *
- * 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 "quantum.h"
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(D3, led_state.num_lock);
- gpio_write_pin(D5, led_state.caps_lock);
- gpio_write_pin(C6, led_state.scroll_lock);
- }
- return res;
-}
-
diff --git a/keyboards/terrazzo/readme.md b/keyboards/terrazzo/readme.md
index e0f4f3457f..828819f7b4 100644
--- a/keyboards/terrazzo/readme.md
+++ b/keyboards/terrazzo/readme.md
@@ -82,8 +82,8 @@ Change pinouts, Pro Micro does not have the "F0" pin.
Set encoder to just top or bottom position.
```
-#define ENCODERS_PAD_A { C6 }
-#define ENCODERS_PAD_B { D4 }
+#define ENCODER_A_PINS { C6 }
+#define ENCODER_B_PINS { D4 }
```
## Encoder Setup
diff --git a/keyboards/tkc/osav2/keyboard.json b/keyboards/tkc/osav2/keyboard.json
index 118eedfc85..ef4c789797 100644
--- a/keyboards/tkc/osav2/keyboard.json
+++ b/keyboards/tkc/osav2/keyboard.json
@@ -50,6 +50,11 @@
"pin": "D6",
"breathing": true
},
+ "indicators": {
+ "caps_lock": "C6",
+ "num_lock": "C7",
+ "scroll_lock": "B6"
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": ["alice", "alice_split_bs"],
diff --git a/keyboards/tkc/osav2/osav2.c b/keyboards/tkc/osav2/osav2.c
deleted file mode 100644
index 9966046486..0000000000
--- a/keyboards/tkc/osav2/osav2.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2019 jrfhoutx
- *
- * 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 "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(C7);
- gpio_set_pin_output(C6);
- gpio_set_pin_output(B6);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if (led_update_user(led_state)) {
- gpio_write_pin(C7, led_state.num_lock);
- gpio_write_pin(C6, led_state.caps_lock);
- gpio_write_pin(B6, led_state.scroll_lock);
- }
- return true;
-}
diff --git a/keyboards/tr60w/keyboard.json b/keyboards/tr60w/keyboard.json
index 60c01bdcfc..dc71e3ad7a 100644
--- a/keyboards/tr60w/keyboard.json
+++ b/keyboards/tr60w/keyboard.json
@@ -32,6 +32,12 @@
"backlight": {
"pin": "B7"
},
+ "indicators": {
+ "caps_lock": "B2",
+ "num_lock": "B1",
+ "scroll_lock": "B3",
+ "on_state": 0
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/tr60w/tr60w.c b/keyboards/tr60w/tr60w.c
deleted file mode 100644
index ebf48cb1c7..0000000000
--- a/keyboards/tr60w/tr60w.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include "quantum.h"
-
-bool led_update_kb(led_t led_state) {
- bool runDefault = led_update_user(led_state);
- if (runDefault) {
- gpio_write_pin(B1, !led_state.num_lock);
- gpio_write_pin(B2, !led_state.caps_lock);
- gpio_write_pin(B3, !led_state.scroll_lock);
- }
- return runDefault;
-}
diff --git a/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/overnumpad_1xb.c b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/overnumpad_1xb.c
index f441285c9a..488ace3f91 100644
--- a/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/overnumpad_1xb.c
+++ b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/overnumpad_1xb.c
@@ -23,6 +23,8 @@ void keyboard_post_init_kb(void)
gpio_set_pin_output(C11); // middle led, always off on Spacesaver M
gpio_write_pin(C11, 0);
gpio_set_pin_output(C10); // right-most led, normally Scroll Lock, but on Spacesaver M indicates function layer
+
+ keyboard_post_init_user();
}
diff --git a/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/overnumpad_1xb.c b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/overnumpad_1xb.c
index bad0c76e43..9f5f592ff6 100644
--- a/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/overnumpad_1xb.c
+++ b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/overnumpad_1xb.c
@@ -23,6 +23,8 @@ void keyboard_post_init_kb(void)
gpio_set_pin_output(C11); // middle led, always off on Spacesaver M
gpio_write_pin(C11, 0);
gpio_set_pin_output(C10); // right-most led, normally Scroll Lock, but on Spacesaver M indicates function layer
+
+ keyboard_post_init_user();
}
layer_state_t layer_state_set_kb(layer_state_t state) {
diff --git a/keyboards/viktus/sp111/keyboard.json b/keyboards/viktus/sp111/keyboard.json
index 8cf65a5522..91a70c284b 100644
--- a/keyboards/viktus/sp111/keyboard.json
+++ b/keyboards/viktus/sp111/keyboard.json
@@ -17,6 +17,11 @@
"mousekey": true,
"nkro": true
},
+ "indicators": {
+ "caps_lock": "F1",
+ "num_lock": "F0",
+ "scroll_lock": "F4"
+ },
"qmk": {
"locking": {
"enabled": true,
diff --git a/keyboards/viktus/sp111/sp111.c b/keyboards/viktus/sp111/sp111.c
index 1626683804..c2162429c1 100644
--- a/keyboards/viktus/sp111/sp111.c
+++ b/keyboards/viktus/sp111/sp111.c
@@ -22,21 +22,3 @@ void keyboard_pre_init_kb(void) {
keyboard_pre_init_user();
}
-
-void matrix_init_kb(void) {
- gpio_set_pin_output(F0);
- gpio_set_pin_output(F1);
- gpio_set_pin_output(F4);
-
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if (res) {
- gpio_write_pin(F0, led_state.num_lock);
- gpio_write_pin(F1, led_state.caps_lock);
- gpio_write_pin(F4, led_state.scroll_lock);
- }
- return res;
-}
diff --git a/keyboards/westfoxtrot/cypher/rev1/keyboard.json b/keyboards/westfoxtrot/cypher/rev1/keyboard.json
index 09294d169c..30dcc625de 100644
--- a/keyboards/westfoxtrot/cypher/rev1/keyboard.json
+++ b/keyboards/westfoxtrot/cypher/rev1/keyboard.json
@@ -31,6 +31,11 @@
"levels": 5,
"breathing": true
},
+ "indicators": {
+ "caps_lock": "F1",
+ "num_lock": "F4",
+ "scroll_lock": "F5"
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layouts": {
diff --git a/keyboards/westfoxtrot/cypher/rev1/rev1.c b/keyboards/westfoxtrot/cypher/rev1/rev1.c
deleted file mode 100644
index eeaa7b4a4c..0000000000
--- a/keyboards/westfoxtrot/cypher/rev1/rev1.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2019 westfoxtrot
- *
- * 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 "quantum.h"
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- // gpio_write_pin sets the pin high for 1 and low for 0.
- // In this example the pins are inverted, setting
- // it low/0 turns it on, and high/1 turns the LED off.
- // This behavior depends on whether the LED is between the pin
- // and VCC or the pin and GND.
- gpio_write_pin(F4, led_state.num_lock);
- gpio_write_pin(F1, led_state.caps_lock);
- gpio_write_pin(F5, led_state.scroll_lock);
- }
- return res;
-}
diff --git a/keyboards/westfoxtrot/cypher/rev5/keyboard.json b/keyboards/westfoxtrot/cypher/rev5/keyboard.json
index fbb487534d..278ff94b06 100644
--- a/keyboards/westfoxtrot/cypher/rev5/keyboard.json
+++ b/keyboards/westfoxtrot/cypher/rev5/keyboard.json
@@ -33,6 +33,11 @@
"levels": 5,
"breathing": true
},
+ "indicators": {
+ "caps_lock": "D5",
+ "num_lock": "D3",
+ "scroll_lock": "D2"
+ },
"rgblight": {
"hue_steps": 12,
"saturation_steps": 25,
diff --git a/keyboards/westfoxtrot/cypher/rev5/rev5.c b/keyboards/westfoxtrot/cypher/rev5/rev5.c
deleted file mode 100644
index 37ca9cf3c1..0000000000
--- a/keyboards/westfoxtrot/cypher/rev5/rev5.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2019 westfoxtrot
- *
- * 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 "quantum.h"
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- // gpio_write_pin sets the pin high for 1 and low for 0.
- // In this example the pins are inverted, setting
- // it low/0 turns it on, and high/1 turns the LED off.
- // This behavior depends on whether the LED is between the pin
- // and VCC or the pin and GND.
- gpio_write_pin(D3, led_state.num_lock);
- gpio_write_pin(D5, led_state.caps_lock);
- gpio_write_pin(D2, led_state.scroll_lock);
- }
- return res;
-}
diff --git a/keyboards/westfoxtrot/prophet/keyboard.json b/keyboards/westfoxtrot/prophet/keyboard.json
index 049f5cd7fc..f82c6da14d 100644
--- a/keyboards/westfoxtrot/prophet/keyboard.json
+++ b/keyboards/westfoxtrot/prophet/keyboard.json
@@ -17,6 +17,9 @@
"nkro": true,
"sleep_led": true
},
+ "indicators": {
+ "caps_lock": "B13"
+ },
"qmk": {
"locking": {
"enabled": true,
diff --git a/keyboards/westfoxtrot/prophet/prophet.c b/keyboards/westfoxtrot/prophet/prophet.c
index 3ef0a3f928..b33ecf90b4 100644
--- a/keyboards/westfoxtrot/prophet/prophet.c
+++ b/keyboards/westfoxtrot/prophet/prophet.c
@@ -1,16 +1,9 @@
#include "quantum.h"
-void keyboard_pre_init_kb (void) {
+void keyboard_pre_init_kb(void) {
gpio_set_pin_output(B12);
- gpio_set_pin_output(B13);
-}
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(B13, led_state.caps_lock);
- }
- return res;
+ keyboard_pre_init_user();
}
__attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) {
diff --git a/keyboards/wilba_tech/wt69_a/keyboard.json b/keyboards/wilba_tech/wt69_a/keyboard.json
index bbe6517850..d41f8fc90e 100644
--- a/keyboards/wilba_tech/wt69_a/keyboard.json
+++ b/keyboards/wilba_tech/wt69_a/keyboard.json
@@ -20,6 +20,9 @@
"resync": true
}
},
+ "indicators": {
+ "caps_lock": "F1"
+ },
"matrix_pins": {
"cols": ["B7", "B0", "F5", "D5", "B1", "B2", "B3", "D3", "D2", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"],
"rows": ["F0", "E6", "F4", "F6", "F7"]
diff --git a/keyboards/wilba_tech/wt69_a/wt69_a.c b/keyboards/wilba_tech/wt69_a/wt69_a.c
deleted file mode 100644
index 842b62a4d1..0000000000
--- a/keyboards/wilba_tech/wt69_a/wt69_a.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2018 Jason Williams (Wilba)
- *
- * 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 "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(F1);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if (led_update_user(led_state)) {
- gpio_write_pin(F1, led_state.caps_lock);
- }
- return true;
-}
diff --git a/keyboards/wilba_tech/wt70_jb/keyboard.json b/keyboards/wilba_tech/wt70_jb/keyboard.json
index bfa27f225b..f922810600 100644
--- a/keyboards/wilba_tech/wt70_jb/keyboard.json
+++ b/keyboards/wilba_tech/wt70_jb/keyboard.json
@@ -8,6 +8,9 @@
"pid": "0x001F",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "F1"
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/wilba_tech/wt70_jb/wt70_jb.c b/keyboards/wilba_tech/wt70_jb/wt70_jb.c
index ae9b5dcbec..e4d0efc5e4 100644
--- a/keyboards/wilba_tech/wt70_jb/wt70_jb.c
+++ b/keyboards/wilba_tech/wt70_jb/wt70_jb.c
@@ -17,19 +17,6 @@
bool g_first_execution = false;
-void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(F1);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if (led_update_user(led_state)) {
- gpio_write_pin(F1, led_state.caps_lock);
- }
- return true;
-}
-
// This is some magic so that PCBs flashed with VIA firmware at the factory
// will start with an RGB test pattern. Not relevant for non-VIA firmware.
#ifdef VIA_ENABLE
@@ -55,6 +42,8 @@ void keyboard_post_init_kb(void) {
if ( g_first_execution ) {
rgblight_mode(RGBLIGHT_MODE_RGB_TEST);
}
+
+ keyboard_post_init_user();
}
#endif // VIA_ENABLE
diff --git a/keyboards/winry/winry315/keymaps/via/keymap.c b/keyboards/winry/winry315/keymaps/via/keymap.c
index 0641fbfd03..4585f46fb6 100644
--- a/keyboards/winry/winry315/keymaps/via/keymap.c
+++ b/keyboards/winry/winry315/keymaps/via/keymap.c
@@ -37,3 +37,8 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[2 ... 7] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
};
#endif
+
+// The enum values are assumed to match the layout option values used by VIA.
+void via_set_layout_options_kb(uint32_t value) {
+ winry315_set_orientation(value & 0x03);
+}
diff --git a/keyboards/winry/winry315/winry315.c b/keyboards/winry/winry315/winry315.c
index e7901a2e00..03621d3e3f 100644
--- a/keyboards/winry/winry315/winry315.c
+++ b/keyboards/winry/winry315/winry315.c
@@ -3,13 +3,11 @@
#include "winry315.h"
-#include "via.h"
-
#if !defined(WINRY315_DEFAULT_ORIENTATION)
# define WINRY315_DEFAULT_ORIENTATION WINRY315_ORIENTATION_TOP
#endif
-#if !defined(VIA_ENABLE) && defined(ENCODER_ENABLE)
+#if defined(ENCODER_ENABLE) && !defined(ENCODER_MAP_ENABLE)
# ifndef MEDIA_KEY_DELAY
# define MEDIA_KEY_DELAY 10
# endif
@@ -41,7 +39,7 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
}
return true;
}
-#endif // !defined(VIA_ENABLE) && defined(ENCODER_ENABLE)
+#endif // defined(ENCODER_ENABLE) && !defined(ENCODER_MAP_ENABLE)
#if defined(RGB_MATRIX_ENABLE)
@@ -200,9 +198,3 @@ void winry315_set_orientation(uint8_t orientation) {
}
#endif // defined(RGB_MATRIX_ENABLE)
}
-
-#if defined(VIA_ENABLE)
-void via_set_layout_options_kb(uint32_t value) {
- winry315_set_orientation(value & 0x03);
-}
-#endif // defined(VIA_ENABLE)
diff --git a/keyboards/winry/winry315/winry315.h b/keyboards/winry/winry315/winry315.h
index 8129c9d6e0..ea7b4120e2 100644
--- a/keyboards/winry/winry315/winry315.h
+++ b/keyboards/winry/winry315/winry315.h
@@ -5,8 +5,7 @@
#include "quantum.h"
-// Supported orientations of the board. The enum values must match the layout
-// option values used by VIA.
+// Supported orientations of the board.
enum winry315_orientation {
WINRY315_ORIENTATION_TOP, // Encoders at the top side (default)
WINRY315_ORIENTATION_LEFT, // Encoders at the left side
@@ -17,10 +16,9 @@ enum winry315_orientation {
// Set the orientation of the board (changes the RGB Matrix effect behavior to
// match the new orientation).
//
-// This function is intended to be used in the `via` keymap, where the board
-// orientation is configured dynamically using a VIA layout option. If you are
-// making a custom keymap for one specific orientation, it is better to set the
-// orientation in config.h (e.g., `#define WINRY315_DEFAULT_ORIENTATION
-// WINRY315_ORIENTATION_LEFT`) instead of adding custom code that calls this
-// function.
+// This function is intended to be used to configure the orientation
+// dynamically. If you are making a custom keymap for one specific orientation,
+// it is better to set the orientation in config.h
+// (e.g., `#define WINRY315_DEFAULT_ORIENTATION WINRY315_ORIENTATION_LEFT`)
+// instead of adding custom code that calls this function.
void winry315_set_orientation(uint8_t orientation);
diff --git a/keyboards/wolfmarkclub/wm1/keyboard.json b/keyboards/wolfmarkclub/wm1/keyboard.json
index 56c062e102..0cea5546c8 100644
--- a/keyboards/wolfmarkclub/wm1/keyboard.json
+++ b/keyboards/wolfmarkclub/wm1/keyboard.json
@@ -27,6 +27,11 @@
"resync": true
}
},
+ "indicators": {
+ "caps_lock": "B1",
+ "num_lock": "B0",
+ "scroll_lock": "C5"
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/wolfmarkclub/wm1/wm1.c b/keyboards/wolfmarkclub/wm1/wm1.c
index 9c4fb090c8..83c4c8bb45 100644
--- a/keyboards/wolfmarkclub/wm1/wm1.c
+++ b/keyboards/wolfmarkclub/wm1/wm1.c
@@ -4,19 +4,3 @@ void bootloader_jump(void) {
// This board doesn't use the "standard" stm32duino bootloader, and no information is available regarding how to enter bootloader mode. All we can do here is reset.
NVIC_SystemReset();
}
-
-void matrix_init_kb(void) {
- gpio_set_pin_output(B1); // Top Indicator LED
- gpio_set_pin_output(B0); // Middle Indicator LED
- gpio_set_pin_output(C5); // Bottom Indicator LED
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if(led_update_user(led_state)) {
- gpio_write_pin(B1, led_state.caps_lock);
- gpio_write_pin(B0, led_state.num_lock);
- gpio_write_pin(C5, led_state.scroll_lock);
- }
- return true;
-}
diff --git a/keyboards/work_louder/rgb_functions.h b/keyboards/work_louder/rgb_functions.h
index eaef787a22..20c99021fb 100644
--- a/keyboards/work_louder/rgb_functions.h
+++ b/keyboards/work_louder/rgb_functions.h
@@ -18,62 +18,32 @@
#include "keycodes.h"
-#ifndef VIA_ENABLE
-# ifndef RGB_MATRIX_TOGGLE
-# define RGB_MATRIX_TOGGLE KC_F15
-# endif
-# ifndef RGB_MATRIX_MODE_INC
-# define RGB_MATRIX_MODE_INC KC_F16
-# endif
-# ifndef RGB_MATRIX_MODE_DEC
-# define RGB_MATRIX_MODE_DEC KC_F17
-# endif
-# ifndef RGB_MATRIX_HUE_INC
-# define RGB_MATRIX_HUE_INC KC_F18
-# endif
-# ifndef RGB_MATRIX_HUE_DEC
-# define RGB_MATRIX_HUE_DEC KC_F19
-# endif
-# ifndef RGB_MATRIX_SAT_INC
-# define RGB_MATRIX_SAT_INC KC_F20
-# endif
-# ifndef RGB_MATRIX_SAT_DEC
-# define RGB_MATRIX_SAT_DEC KC_F21
-# endif
-# ifndef RGB_MATRIX_VAL_INC
-# define RGB_MATRIX_VAL_INC KC_F22
-# endif
-# ifndef RGB_MATRIX_VAL_DEC
-# define RGB_MATRIX_VAL_DEC KC_F23
-# endif
-#else
-# ifndef RGB_MATRIX_TOGGLE
-# define RGB_MATRIX_TOGGLE QK_KB_0
-# endif
-# ifndef RGB_MATRIX_MODE_INC
-# define RGB_MATRIX_MODE_INC QK_KB_1
-# endif
-# ifndef RGB_MATRIX_MODE_DEC
-# define RGB_MATRIX_MODE_DEC QK_KB_2
-# endif
-# ifndef RGB_MATRIX_HUE_INC
-# define RGB_MATRIX_HUE_INC QK_KB_3
-# endif
-# ifndef RGB_MATRIX_HUE_DEC
-# define RGB_MATRIX_HUE_DEC QK_KB_4
-# endif
-# ifndef RGB_MATRIX_SAT_INC
-# define RGB_MATRIX_SAT_INC QK_KB_5
-# endif
-# ifndef RGB_MATRIX_SAT_DEC
-# define RGB_MATRIX_SAT_DEC QK_KB_6
-# endif
-# ifndef RGB_MATRIX_VAL_INC
-# define RGB_MATRIX_VAL_INC QK_KB_7
-# endif
-# ifndef RGB_MATRIX_VAL_DEC
-# define RGB_MATRIX_VAL_DEC QK_KB_8
-# endif
+#ifndef RGB_MATRIX_TOGGLE
+# define RGB_MATRIX_TOGGLE QK_KB_0
+#endif
+#ifndef RGB_MATRIX_MODE_INC
+# define RGB_MATRIX_MODE_INC QK_KB_1
+#endif
+#ifndef RGB_MATRIX_MODE_DEC
+# define RGB_MATRIX_MODE_DEC QK_KB_2
+#endif
+#ifndef RGB_MATRIX_HUE_INC
+# define RGB_MATRIX_HUE_INC QK_KB_3
+#endif
+#ifndef RGB_MATRIX_HUE_DEC
+# define RGB_MATRIX_HUE_DEC QK_KB_4
+#endif
+#ifndef RGB_MATRIX_SAT_INC
+# define RGB_MATRIX_SAT_INC QK_KB_5
+#endif
+#ifndef RGB_MATRIX_SAT_DEC
+# define RGB_MATRIX_SAT_DEC QK_KB_6
+#endif
+#ifndef RGB_MATRIX_VAL_INC
+# define RGB_MATRIX_VAL_INC QK_KB_7
+#endif
+#ifndef RGB_MATRIX_VAL_DEC
+# define RGB_MATRIX_VAL_DEC QK_KB_8
#endif
#define R_M_TOG RGB_MATRIX_TOGGLE
diff --git a/keyboards/work_louder/work_board/config.h b/keyboards/work_louder/work_board/config.h
index 2514a63dde..36dadf6d4e 100644
--- a/keyboards/work_louder/work_board/config.h
+++ b/keyboards/work_louder/work_board/config.h
@@ -23,5 +23,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_MATRIX_LED_COUNT 49
#define RGB_MATRIX_DISABLE_KEYCODES
-
-#define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x1
diff --git a/keyboards/work_louder/work_board/info.json b/keyboards/work_louder/work_board/info.json
index dc412fdabd..0e97efa9a4 100644
--- a/keyboards/work_louder/work_board/info.json
+++ b/keyboards/work_louder/work_board/info.json
@@ -58,7 +58,61 @@
},
"driver": "ws2812",
"max_brightness": 120,
- "sleep": true
+ "sleep": true,
+ "layout": [
+ {"matrix": [3, 11], "x": 223, "y": 63, "flags": 1},
+ {"matrix": [3, 10], "x": 203, "y": 63, "flags": 1},
+ {"matrix": [3, 9], "x": 183, "y": 63, "flags": 1},
+ {"matrix": [3, 8], "x": 162, "y": 63, "flags": 1},
+ {"matrix": [3, 7], "x": 142, "y": 63, "flags": 1},
+ {"matrix": [3, 6], "x": 122, "y": 63, "flags": 4},
+ {"x": 112, "y": 63, "flags": 4},
+ {"matrix": [3, 5], "x": 101, "y": 63, "flags": 4},
+ {"matrix": [3, 4], "x": 81, "y": 63, "flags": 1},
+ {"matrix": [3, 3], "x": 61, "y": 63, "flags": 1},
+ {"matrix": [3, 2], "x": 40, "y": 63, "flags": 1},
+ {"matrix": [3, 1], "x": 20, "y": 63, "flags": 1},
+ {"matrix": [3, 0], "x": 0, "y": 63, "flags": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1},
+ {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4},
+ {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4},
+ {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4},
+ {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4},
+ {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4},
+ {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4},
+ {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4},
+ {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4},
+ {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4},
+ {"matrix": [2, 10], "x": 203, "y": 42, "flags": 4},
+ {"matrix": [2, 11], "x": 223, "y": 42, "flags": 1},
+
+ {"matrix": [1, 11], "x": 223, "y": 21, "flags": 1},
+ {"matrix": [1, 10], "x": 203, "y": 21, "flags": 4},
+ {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4},
+ {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4},
+ {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4},
+ {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4},
+ {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4},
+ {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4},
+ {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4},
+ {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4},
+ {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4},
+ {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1},
+
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4},
+ {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4},
+ {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4},
+ {"matrix": [0, 11], "x": 223, "y": 0, "flags": 1},
+ ]
},
"matrix_pins": {
"cols": ["D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "E6"],
diff --git a/keyboards/work_louder/work_board/keymaps/via/config.h b/keyboards/work_louder/work_board/keymaps/via/config.h
index 7aa3bebe9b..716aac11aa 100644
--- a/keyboards/work_louder/work_board/keymaps/via/config.h
+++ b/keyboards/work_louder/work_board/keymaps/via/config.h
@@ -1,6 +1,10 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
+
#define NO_ACTION_ONESHOT
+
#undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
#undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL
+
+#define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x1
diff --git a/keyboards/work_louder/work_board/keymaps/via/keymap.c b/keyboards/work_louder/work_board/keymaps/via/keymap.c
index 255ee3ed78..9ba3dcda4c 100644
--- a/keyboards/work_louder/work_board/keymaps/via/keymap.c
+++ b/keyboards/work_louder/work_board/keymaps/via/keymap.c
@@ -214,3 +214,21 @@ void via_custom_value_command_kb(uint8_t *data, uint8_t length) {
}
*command_id = id_unhandled;
}
+
+bool via_layout_2u = false;
+
+void via_set_layout_options_kb(uint32_t value) {
+ via_layout_2u = (bool)value;
+}
+
+#ifdef RGB_MATRIX_ENABLE
+bool rgb_matrix_indicators_user(void) {
+ if (via_layout_2u) {
+ rgb_matrix_set_color(5, 0, 0, 0);
+ rgb_matrix_set_color(7, 0, 0, 0);
+ } else {
+ rgb_matrix_set_color(6, 0, 0, 0);
+ }
+ return false;
+}
+#endif
diff --git a/keyboards/work_louder/work_board/work_board.c b/keyboards/work_louder/work_board/work_board.c
index 975c7aa794..b34f31df5c 100644
--- a/keyboards/work_louder/work_board/work_board.c
+++ b/keyboards/work_louder/work_board/work_board.c
@@ -67,46 +67,12 @@ bool oled_task_kb(void) {
#endif
#ifdef RGB_MATRIX_ENABLE
-// clang-format off
-led_config_t g_led_config = { {
- { 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 },
- { 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25 },
- { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 },
- { 12, 11, 10, 9, 8, 7, 5, 4, 3, 2, 1, 0}
-}, {
- { 223, 63 }, { 203, 63 }, { 183, 63 }, { 162, 63 }, { 142, 63 }, { 122, 63 }, { 112, 63 }, { 101, 63 }, { 81, 63 }, { 61, 63 }, { 40, 63 }, { 20, 63 }, { 0, 63 },
- { 0, 42 }, { 20, 42 }, { 40, 42 }, { 61, 42 }, { 81, 42 }, { 101, 42 }, { 122, 42 }, { 142, 42 }, { 162, 42 }, { 183, 42 }, { 203, 42 }, { 223, 42 },
- { 223, 21 }, { 203, 21 }, { 183, 21 }, { 162, 21 }, { 142, 21 }, { 122, 21 }, { 101, 21 }, { 81, 21 }, { 61, 21 }, { 40, 21 }, { 20, 21 }, { 0, 21 },
- { 0, 0 }, { 20, 0 }, { 40, 0 }, { 61, 0 }, { 81, 0 }, { 101, 0 }, { 122, 0 }, { 142, 0 }, { 162, 0 }, { 183, 0 }, { 203, 0 }, { 223, 0 }
-}, {
- 1, 1, 1, 1, 1, 4,4,4, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1
-} };
-// clang-format on
-
-# ifdef VIA_ENABLE
-bool via_layout_2u = false;
-
-void via_set_layout_options_kb(uint32_t value) { via_layout_2u = (bool)value; }
-# endif // VIA_ENABLE
-
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
}
-# ifdef VIA_ENABLE
- if (via_layout_2u) {
- rgb_matrix_set_color(5, 0, 0, 0);
- rgb_matrix_set_color(7, 0, 0, 0);
- } else {
- rgb_matrix_set_color(6, 0, 0, 0);
- }
-# else
rgb_matrix_set_color(5, 0, 0, 0);
rgb_matrix_set_color(7, 0, 0, 0);
-# endif
return true;
}
diff --git a/keyboards/wsk/g4m3ralpha/g4m3ralpha.c b/keyboards/wsk/g4m3ralpha/g4m3ralpha.c
deleted file mode 100644
index 3c039a173f..0000000000
--- a/keyboards/wsk/g4m3ralpha/g4m3ralpha.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2020 Worldspawn <[email protected]>
- *
- * 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 "quantum.h"
-
-
-void matrix_init_kb(void) {
- gpio_set_pin_output(D3);
- gpio_write_pin_low(D3);
- gpio_set_pin_output(D2);
- gpio_write_pin_low(D2);
- gpio_set_pin_output(D0);
- gpio_write_pin_low(D0);
-
- matrix_init_user();
-};
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(D3, led_state.num_lock);
- gpio_write_pin(D0, led_state.caps_lock);
- gpio_write_pin(D2, led_state.scroll_lock);
- }
- return res;
-}
diff --git a/keyboards/wsk/g4m3ralpha/keyboard.json b/keyboards/wsk/g4m3ralpha/keyboard.json
index fcb2f26f5f..b5cdb7ce10 100644
--- a/keyboards/wsk/g4m3ralpha/keyboard.json
+++ b/keyboards/wsk/g4m3ralpha/keyboard.json
@@ -8,6 +8,11 @@
"pid": "0x56D9",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "D0",
+ "num_lock": "D3",
+ "scroll_lock": "D2"
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/wuque/ikki68/ikki68.c b/keyboards/wuque/ikki68/ikki68.c
deleted file mode 100644
index 382ec00251..0000000000
--- a/keyboards/wuque/ikki68/ikki68.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2020 wuquestudio
- *
- * 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 "quantum.h"
-
-void matrix_init_kb(void) {
- gpio_set_pin_output(C6);
-
- matrix_init_user();
-}
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(C6, !led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/wuque/ikki68/keyboard.json b/keyboards/wuque/ikki68/keyboard.json
index c6070e74fa..d666b0b5de 100644
--- a/keyboards/wuque/ikki68/keyboard.json
+++ b/keyboards/wuque/ikki68/keyboard.json
@@ -8,6 +8,10 @@
"pid": "0x0003",
"device_version": "0.0.1"
},
+ "indicators": {
+ "caps_lock": "C6",
+ "on_state": 0
+ },
"ws2812": {
"pin": "E2"
},
diff --git a/keyboards/xelus/pachi/rgb/keymaps/via/config.h b/keyboards/xelus/pachi/rgb/rev1/keymaps/via/config.h
index 47bbf2bf81..47bbf2bf81 100644
--- a/keyboards/xelus/pachi/rgb/keymaps/via/config.h
+++ b/keyboards/xelus/pachi/rgb/rev1/keymaps/via/config.h
diff --git a/keyboards/xelus/pachi/rgb/keymaps/via/keymap.c b/keyboards/xelus/pachi/rgb/rev1/keymaps/via/keymap.c
index 70904faaba..70904faaba 100644
--- a/keyboards/xelus/pachi/rgb/keymaps/via/keymap.c
+++ b/keyboards/xelus/pachi/rgb/rev1/keymaps/via/keymap.c
diff --git a/keyboards/xelus/pachi/rgb/keymaps/via/rules.mk b/keyboards/xelus/pachi/rgb/rev1/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/xelus/pachi/rgb/keymaps/via/rules.mk
+++ b/keyboards/xelus/pachi/rgb/rev1/keymaps/via/rules.mk
diff --git a/keyboards/xelus/pachi/rgb/rev2/config.h b/keyboards/xelus/pachi/rgb/rev2/config.h
index a5fc38e070..fcf4c41d8a 100644
--- a/keyboards/xelus/pachi/rgb/rev2/config.h
+++ b/keyboards/xelus/pachi/rgb/rev2/config.h
@@ -33,7 +33,3 @@
// RGB Matrix defines
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_LED_COUNT RGB_MATRIX_LED_COUNT // is31fl3741.h does not set this for custom driver
-
-// VIA KB level
-#define VIA_FIRMWARE_VERSION 1
-#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 17
diff --git a/keyboards/bastardkb/tbk/config.h b/keyboards/xelus/pachi/rgb/rev2/keymaps/via/config.h
index 8515cac5ef..abdd8c320c 100644
--- a/keyboards/bastardkb/tbk/config.h
+++ b/keyboards/xelus/pachi/rgb/rev2/keymaps/via/config.h
@@ -1,5 +1,4 @@
-/*
- * Copyright 2021 Quentin LEBASTARD <[email protected]>
+/* Copyright 2021 Harrison Chan (Xelus)
*
* 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
@@ -17,4 +16,5 @@
#pragma once
-#define MASTER_RIGHT
+#define VIA_FIRMWARE_VERSION 1
+#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 17
diff --git a/keyboards/xelus/pachi/rgb/rev2/keymaps/via/keymap.c b/keyboards/xelus/pachi/rgb/rev2/keymaps/via/keymap.c
new file mode 100644
index 0000000000..f739dc4b6a
--- /dev/null
+++ b/keyboards/xelus/pachi/rgb/rev2/keymaps/via/keymap.c
@@ -0,0 +1,399 @@
+/* Copyright 2021 Harrison Chan (Xelus)
+ *
+ * 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 "eeprom.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_tkl_ansi_tsangan(
+ 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_PSCR, KC_SCRL, KC_PAUS,
+ 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_INS, KC_HOME, 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_DEL, KC_END, KC_PGDN,
+ MO(1), 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_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_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+
+ [1] = LAYOUT_tkl_ansi_tsangan(
+ 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, QK_BOOT , 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,
+ 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),
+
+ [2] = LAYOUT_tkl_ansi_tsangan(
+ 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,
+ 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, 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)
+};
+
+// custom ID codes
+enum via_indicator_value {
+ id_caps_lock_enable = 1,
+ id_caps_lock_brightness,
+ id_caps_lock_color,
+ id_caps_lock_key,
+ id_caps_lock_override,
+ id_num_lock_enable,
+ id_num_lock_brightness,
+ id_num_lock_color,
+ id_num_lock_key,
+ id_num_lock_override,
+ id_scroll_lock_enable,
+ id_scroll_lock_brightness,
+ id_scroll_lock_color,
+ id_scroll_lock_key,
+ id_scroll_lock_override,
+ id_layer_indicator_enable,
+ id_layer_indicator_brightness,
+ id_layer_indicator_color,
+ id_layer_indicator_key,
+ id_layer_indicator_override
+};
+
+// struct to save things
+typedef struct {
+ bool enable_caps_lock:1; // |
+ bool enable_num_lock:1; // |
+ bool enable_scroll_lock:1; // |
+ bool enable_layer_indicator:1; // |
+ bool caps_override_bl:1; // |
+ bool num_override_bl:1; // |
+ bool scroll_override_bl:1; // |
+ bool layer_override_bl:1; // 1 byte
+ HSV caps_lock_indicator; // 3 bytes
+ HSV num_lock_indicator; // 3 bytes
+ HSV scroll_lock_indicator; // 3 bytes
+ HSV layer_indicator; // 3 bytes
+ uint8_t caps_lock_key; // 1 byte
+ uint8_t num_lock_key; // 1 byte
+ uint8_t scroll_lock_key; // 1 byte
+ uint8_t layer_indicator_key;// 1 byte
+} indicator_settings_config;
+// total 17 bytes
+
+indicator_settings_config g_config = {
+ .caps_lock_indicator = {0, 0, 128},
+ .num_lock_indicator = {60, 0, 128},
+ .scroll_lock_indicator = {120, 0, 128},
+ .layer_indicator = {180, 0, 128},
+ .caps_lock_key = 7,
+ .num_lock_key = 0,
+ .scroll_lock_key = 78,
+ .layer_indicator_key = 0,
+ .enable_caps_lock = true,
+ .enable_num_lock = false,
+ .enable_scroll_lock = true,
+ .enable_layer_indicator = false,
+ .caps_override_bl = true,
+ .num_override_bl = true,
+ .scroll_override_bl = true,
+ .layer_override_bl = true
+};
+
+
+// function declaration
+void indicator_config_set_value( uint8_t *data );
+void indicator_config_get_value( uint8_t *data );
+void indicator_config_save ( void );
+void _set_color(HSV *color, uint8_t *data);
+void _get_color(HSV *color, uint8_t *data);
+
+void values_load(void)
+{
+ eeprom_read_block( &g_config, ((void*)VIA_EEPROM_CUSTOM_CONFIG_ADDR), sizeof(g_config) );
+}
+
+void values_save(void)
+{
+ eeprom_update_block( &g_config, ((void*)VIA_EEPROM_CUSTOM_CONFIG_ADDR), sizeof(g_config) );
+}
+
+void via_init_kb(void)
+{
+ // If the EEPROM has the magic, the data is good.
+ // OK to load from EEPROM
+ if (via_eeprom_is_valid()) {
+ values_load();
+ } else {
+ values_save();
+ // DO NOT set EEPROM valid here, let caller do this
+ }
+}
+
+void via_custom_value_command_kb(uint8_t *data, uint8_t length) {
+ // data = [ command_id, channel_id, value_id, value_data ]
+ uint8_t *command_id = &(data[0]);
+ uint8_t *channel_id = &(data[1]);
+ uint8_t *value_id_and_data = &(data[2]);
+
+ if ( *channel_id == id_custom_channel ) {
+ switch ( *command_id )
+ {
+ case id_custom_set_value:
+ {
+ indicator_config_set_value(value_id_and_data);
+ break;
+ }
+ case id_custom_get_value:
+ {
+ indicator_config_get_value(value_id_and_data);
+ break;
+ }
+ case id_custom_save:
+ {
+ values_save();
+ break;
+ }
+ default:
+ {
+ // Unhandled message.
+ *command_id = id_unhandled;
+ break;
+ }
+ }
+ return;
+ }
+
+ // Return the unhandled state
+ *command_id = id_unhandled;
+
+ // DO NOT call raw_hid_send(data,length) here, let caller do this
+}
+
+void indicator_config_set_value( uint8_t *data )
+{
+ // data = [ value_id, value_data ]
+ uint8_t *value_id = &(data[0]);
+ uint8_t *value_data = &(data[1]);
+
+ switch ( *value_id )
+ {
+ case id_caps_lock_enable:
+ g_config.enable_caps_lock = *value_data;
+ break;
+ case id_num_lock_enable:
+ g_config.enable_num_lock = *value_data;
+ break;
+ case id_scroll_lock_enable:
+ g_config.enable_scroll_lock = *value_data;
+ break;
+ case id_layer_indicator_enable:
+ g_config.enable_layer_indicator = *value_data;
+ break;
+ case id_caps_lock_brightness:
+ g_config.caps_lock_indicator.v = *value_data;
+ break;
+ case id_num_lock_brightness:
+ g_config.num_lock_indicator.v = *value_data;
+ break;
+ case id_scroll_lock_brightness:
+ g_config.scroll_lock_indicator.v = *value_data;
+ break;
+ case id_layer_indicator_brightness:
+ g_config.layer_indicator.v = *value_data;
+ break;
+ case id_caps_lock_color:
+ _set_color( &(g_config.caps_lock_indicator), value_data );
+ break;
+ case id_num_lock_color:
+ _set_color( &(g_config.num_lock_indicator), value_data );
+ break;
+ case id_scroll_lock_color:
+ _set_color( &(g_config.scroll_lock_indicator), value_data );
+ break;
+ case id_layer_indicator_color:
+ _set_color( &(g_config.layer_indicator), value_data );
+ break;
+ case id_caps_lock_key:
+ g_config.caps_lock_key = *value_data;
+ break;
+ case id_num_lock_key:
+ g_config.num_lock_key = *value_data;
+ break;
+ case id_scroll_lock_key:
+ g_config.scroll_lock_key = *value_data;
+ break;
+ case id_layer_indicator_key:
+ g_config.layer_indicator_key = *value_data;
+ break;
+ case id_caps_lock_override:
+ g_config.caps_override_bl = *value_data;
+ break;
+ case id_num_lock_override:
+ g_config.num_override_bl = *value_data;
+ break;
+ case id_scroll_lock_override:
+ g_config.scroll_override_bl = *value_data;
+ break;
+ case id_layer_indicator_override:
+ g_config.layer_override_bl = *value_data;
+ break;
+ }
+}
+
+void indicator_config_get_value( uint8_t *data )
+{
+ uint8_t *value_id = &(data[0]);
+ uint8_t *value_data = &(data[1]);
+
+ switch ( *value_id )
+ {
+ case id_caps_lock_enable:
+ *value_data = g_config.enable_caps_lock;
+ break;
+ case id_num_lock_enable:
+ *value_data = g_config.enable_num_lock;
+ break;
+ case id_scroll_lock_enable:
+ *value_data = g_config.enable_scroll_lock;
+ break;
+ case id_layer_indicator_enable:
+ *value_data = g_config.enable_layer_indicator;
+ break;
+ case id_caps_lock_brightness:
+ *value_data = g_config.caps_lock_indicator.v;
+ break;
+ case id_num_lock_brightness:
+ *value_data = g_config.num_lock_indicator.v;
+ break;
+ case id_layer_indicator_brightness:
+ *value_data = g_config.scroll_lock_indicator.v;
+ break;
+ case id_scroll_lock_brightness:
+ *value_data = g_config.layer_indicator.v;
+ break;
+ case id_caps_lock_color:
+ _get_color( &(g_config.caps_lock_indicator), value_data );
+ break;
+ case id_num_lock_color:
+ _get_color( &(g_config.num_lock_indicator), value_data );
+ break;
+ case id_scroll_lock_color:
+ _get_color( &(g_config.scroll_lock_indicator), value_data );
+ break;
+ case id_layer_indicator_color:
+ _get_color( &(g_config.layer_indicator), value_data );
+ break;
+ case id_caps_lock_key:
+ *value_data = g_config.caps_lock_key;
+ break;
+ case id_num_lock_key:
+ *value_data = g_config.num_lock_key;
+ break;
+ case id_scroll_lock_key:
+ *value_data = g_config.scroll_lock_key;
+ break;
+ case id_layer_indicator_key:
+ *value_data = g_config.layer_indicator_key;
+ break;
+ case id_caps_lock_override:
+ *value_data = g_config.caps_override_bl;
+ break;
+ case id_num_lock_override:
+ *value_data = g_config.num_override_bl;
+ break;
+ case id_scroll_lock_override:
+ *value_data = g_config.scroll_override_bl;
+ break;
+ case id_layer_indicator_override:
+ *value_data = g_config.layer_override_bl;
+ break;
+ }
+}
+
+// Some helpers for setting/getting HSV
+void _set_color( HSV *color, uint8_t *data )
+{
+ color->h = data[0];
+ color->s = data[1];
+}
+
+void _get_color( HSV *color, uint8_t *data )
+{
+ data[0] = color->h;
+ data[1] = color->s;
+}
+
+// Set the indicators with RGB Matrix subsystem
+bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
+ // caps lock cyan
+ if (g_config.enable_caps_lock) {
+ RGB rgb_caps = hsv_to_rgb( (HSV){ .h = g_config.caps_lock_indicator.h,
+ .s = g_config.caps_lock_indicator.s,
+ .v = g_config.caps_lock_indicator.v } );
+ if (host_keyboard_led_state().caps_lock) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(g_config.caps_lock_key, rgb_caps.r, rgb_caps.g, rgb_caps.b);
+ } else {
+ if (g_config.caps_override_bl) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(g_config.caps_lock_key, 0, 0, 0);
+ }
+ }
+ }
+
+ // num lock cyan
+ if (g_config.enable_num_lock) {
+ RGB rgb_num = hsv_to_rgb( (HSV){ .h = g_config.num_lock_indicator.h,
+ .s = g_config.num_lock_indicator.s,
+ .v = g_config.num_lock_indicator.v } );
+ if (host_keyboard_led_state().num_lock) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(g_config.num_lock_key, rgb_num.r, rgb_num.g, rgb_num.b);
+ } else {
+ if (g_config.num_override_bl) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(g_config.num_lock_key, 0, 0, 0);
+ }
+ }
+ }
+
+ // scroll lock cyan
+ if (g_config.enable_scroll_lock) {
+ RGB rgb_scroll = hsv_to_rgb( (HSV){ .h = g_config.scroll_lock_indicator.h,
+ .s = g_config.scroll_lock_indicator.s,
+ .v = g_config.scroll_lock_indicator.v } );
+ if (host_keyboard_led_state().scroll_lock) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(g_config.scroll_lock_key, rgb_scroll.r, rgb_scroll.g, rgb_scroll.b);
+ } else {
+ if (g_config.scroll_override_bl) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(g_config.scroll_lock_key, 0, 0, 0);
+ }
+ }
+ }
+
+ // layer state
+ if (g_config.enable_layer_indicator) {
+ RGB rgb_layer = hsv_to_rgb( (HSV){ .h = g_config.layer_indicator.h,
+ .s = g_config.layer_indicator.s,
+ .v = g_config.layer_indicator.v } );
+ switch (get_highest_layer(layer_state)) {
+ case 0:
+ if (g_config.layer_override_bl) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(g_config.layer_indicator_key, 0, 0, 0);
+ }
+ break;
+ case 1:
+ RGB_MATRIX_INDICATOR_SET_COLOR(g_config.layer_indicator_key, rgb_layer.r, rgb_layer.g, rgb_layer.b);
+ break;
+ default:
+ // white
+ RGB_MATRIX_INDICATOR_SET_COLOR(24, 128, 128, 128);
+ break;
+ }
+ }
+ return false;
+}
diff --git a/keyboards/xelus/pachi/rgb/rev2/keymaps/via/rules.mk b/keyboards/xelus/pachi/rgb/rev2/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/xelus/pachi/rgb/rev2/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/xelus/pachi/rgb/rev2/rev2.c b/keyboards/xelus/pachi/rgb/rev2/rev2.c
index f595e889c3..5589b27177 100644
--- a/keyboards/xelus/pachi/rgb/rev2/rev2.c
+++ b/keyboards/xelus/pachi/rgb/rev2/rev2.c
@@ -14,7 +14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "rev2.h"
+#include "quantum.h"
// tested and working
void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); }
@@ -239,311 +239,4 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
.set_color_all = is31fl3741_set_color_all
};
-#ifdef VIA_ENABLE
-#include "quantum.h"
-#include "eeprom.h"
-
-indicator_settings_config g_config = {
- .caps_lock_indicator = {0, 0, 128},
- .num_lock_indicator = {60, 0, 128},
- .scroll_lock_indicator = {120, 0, 128},
- .layer_indicator = {180, 0, 128},
- .caps_lock_key = 7,
- .num_lock_key = 0,
- .scroll_lock_key = 78,
- .layer_indicator_key = 0,
- .enable_caps_lock = true,
- .enable_num_lock = false,
- .enable_scroll_lock = true,
- .enable_layer_indicator = false,
- .caps_override_bl = true,
- .num_override_bl = true,
- .scroll_override_bl = true,
- .layer_override_bl = true
-};
-
-void values_load(void)
-{
- eeprom_read_block( &g_config, ((void*)VIA_EEPROM_CUSTOM_CONFIG_ADDR), sizeof(g_config) );
-}
-
-void values_save(void)
-{
- eeprom_update_block( &g_config, ((void*)VIA_EEPROM_CUSTOM_CONFIG_ADDR), sizeof(g_config) );
-}
-
-void via_init_kb(void)
-{
- // If the EEPROM has the magic, the data is good.
- // OK to load from EEPROM
- if (via_eeprom_is_valid()) {
- values_load();
- } else {
- values_save();
- // DO NOT set EEPROM valid here, let caller do this
- }
-}
-
-void via_custom_value_command_kb(uint8_t *data, uint8_t length) {
- // data = [ command_id, channel_id, value_id, value_data ]
- uint8_t *command_id = &(data[0]);
- uint8_t *channel_id = &(data[1]);
- uint8_t *value_id_and_data = &(data[2]);
-
- if ( *channel_id == id_custom_channel ) {
- switch ( *command_id )
- {
- case id_custom_set_value:
- {
- indicator_config_set_value(value_id_and_data);
- break;
- }
- case id_custom_get_value:
- {
- indicator_config_get_value(value_id_and_data);
- break;
- }
- case id_custom_save:
- {
- values_save();
- break;
- }
- default:
- {
- // Unhandled message.
- *command_id = id_unhandled;
- break;
- }
- }
- return;
- }
-
- // Return the unhandled state
- *command_id = id_unhandled;
-
- // DO NOT call raw_hid_send(data,length) here, let caller do this
-}
-
-void indicator_config_set_value( uint8_t *data )
-{
- // data = [ value_id, value_data ]
- uint8_t *value_id = &(data[0]);
- uint8_t *value_data = &(data[1]);
-
- switch ( *value_id )
- {
- case id_caps_lock_enable:
- g_config.enable_caps_lock = *value_data;
- break;
- case id_num_lock_enable:
- g_config.enable_num_lock = *value_data;
- break;
- case id_scroll_lock_enable:
- g_config.enable_scroll_lock = *value_data;
- break;
- case id_layer_indicator_enable:
- g_config.enable_layer_indicator = *value_data;
- break;
- case id_caps_lock_brightness:
- g_config.caps_lock_indicator.v = *value_data;
- break;
- case id_num_lock_brightness:
- g_config.num_lock_indicator.v = *value_data;
- break;
- case id_scroll_lock_brightness:
- g_config.scroll_lock_indicator.v = *value_data;
- break;
- case id_layer_indicator_brightness:
- g_config.layer_indicator.v = *value_data;
- break;
- case id_caps_lock_color:
- _set_color( &(g_config.caps_lock_indicator), value_data );
- break;
- case id_num_lock_color:
- _set_color( &(g_config.num_lock_indicator), value_data );
- break;
- case id_scroll_lock_color:
- _set_color( &(g_config.scroll_lock_indicator), value_data );
- break;
- case id_layer_indicator_color:
- _set_color( &(g_config.layer_indicator), value_data );
- break;
- case id_caps_lock_key:
- g_config.caps_lock_key = *value_data;
- break;
- case id_num_lock_key:
- g_config.num_lock_key = *value_data;
- break;
- case id_scroll_lock_key:
- g_config.scroll_lock_key = *value_data;
- break;
- case id_layer_indicator_key:
- g_config.layer_indicator_key = *value_data;
- break;
- case id_caps_lock_override:
- g_config.caps_override_bl = *value_data;
- break;
- case id_num_lock_override:
- g_config.num_override_bl = *value_data;
- break;
- case id_scroll_lock_override:
- g_config.scroll_override_bl = *value_data;
- break;
- case id_layer_indicator_override:
- g_config.layer_override_bl = *value_data;
- break;
- }
-}
-
-void indicator_config_get_value( uint8_t *data )
-{
- uint8_t *value_id = &(data[0]);
- uint8_t *value_data = &(data[1]);
-
- switch ( *value_id )
- {
- case id_caps_lock_enable:
- *value_data = g_config.enable_caps_lock;
- break;
- case id_num_lock_enable:
- *value_data = g_config.enable_num_lock;
- break;
- case id_scroll_lock_enable:
- *value_data = g_config.enable_scroll_lock;
- break;
- case id_layer_indicator_enable:
- *value_data = g_config.enable_layer_indicator;
- break;
- case id_caps_lock_brightness:
- *value_data = g_config.caps_lock_indicator.v;
- break;
- case id_num_lock_brightness:
- *value_data = g_config.num_lock_indicator.v;
- break;
- case id_layer_indicator_brightness:
- *value_data = g_config.scroll_lock_indicator.v;
- break;
- case id_scroll_lock_brightness:
- *value_data = g_config.layer_indicator.v;
- break;
- case id_caps_lock_color:
- _get_color( &(g_config.caps_lock_indicator), value_data );
- break;
- case id_num_lock_color:
- _get_color( &(g_config.num_lock_indicator), value_data );
- break;
- case id_scroll_lock_color:
- _get_color( &(g_config.scroll_lock_indicator), value_data );
- break;
- case id_layer_indicator_color:
- _get_color( &(g_config.layer_indicator), value_data );
- break;
- case id_caps_lock_key:
- *value_data = g_config.caps_lock_key;
- break;
- case id_num_lock_key:
- *value_data = g_config.num_lock_key;
- break;
- case id_scroll_lock_key:
- *value_data = g_config.scroll_lock_key;
- break;
- case id_layer_indicator_key:
- *value_data = g_config.layer_indicator_key;
- break;
- case id_caps_lock_override:
- *value_data = g_config.caps_override_bl;
- break;
- case id_num_lock_override:
- *value_data = g_config.num_override_bl;
- break;
- case id_scroll_lock_override:
- *value_data = g_config.scroll_override_bl;
- break;
- case id_layer_indicator_override:
- *value_data = g_config.layer_override_bl;
- break;
- }
-}
-
-// Some helpers for setting/getting HSV
-void _set_color( HSV *color, uint8_t *data )
-{
- color->h = data[0];
- color->s = data[1];
-}
-
-void _get_color( HSV *color, uint8_t *data )
-{
- data[0] = color->h;
- data[1] = color->s;
-}
-
-// Set the indicators with RGB Matrix subsystem
-bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
- // caps lock cyan
- if (g_config.enable_caps_lock) {
- RGB rgb_caps = hsv_to_rgb( (HSV){ .h = g_config.caps_lock_indicator.h,
- .s = g_config.caps_lock_indicator.s,
- .v = g_config.caps_lock_indicator.v } );
- if (host_keyboard_led_state().caps_lock) {
- RGB_MATRIX_INDICATOR_SET_COLOR(g_config.caps_lock_key, rgb_caps.r, rgb_caps.g, rgb_caps.b);
- } else {
- if (g_config.caps_override_bl) {
- RGB_MATRIX_INDICATOR_SET_COLOR(g_config.caps_lock_key, 0, 0, 0);
- }
- }
- }
-
- // num lock cyan
- if (g_config.enable_num_lock) {
- RGB rgb_num = hsv_to_rgb( (HSV){ .h = g_config.num_lock_indicator.h,
- .s = g_config.num_lock_indicator.s,
- .v = g_config.num_lock_indicator.v } );
- if (host_keyboard_led_state().num_lock) {
- RGB_MATRIX_INDICATOR_SET_COLOR(g_config.num_lock_key, rgb_num.r, rgb_num.g, rgb_num.b);
- } else {
- if (g_config.num_override_bl) {
- RGB_MATRIX_INDICATOR_SET_COLOR(g_config.num_lock_key, 0, 0, 0);
- }
- }
- }
-
- // scroll lock cyan
- if (g_config.enable_scroll_lock) {
- RGB rgb_scroll = hsv_to_rgb( (HSV){ .h = g_config.scroll_lock_indicator.h,
- .s = g_config.scroll_lock_indicator.s,
- .v = g_config.scroll_lock_indicator.v } );
- if (host_keyboard_led_state().scroll_lock) {
- RGB_MATRIX_INDICATOR_SET_COLOR(g_config.scroll_lock_key, rgb_scroll.r, rgb_scroll.g, rgb_scroll.b);
- } else {
- if (g_config.scroll_override_bl) {
- RGB_MATRIX_INDICATOR_SET_COLOR(g_config.scroll_lock_key, 0, 0, 0);
- }
- }
- }
-
- // layer state
- if (g_config.enable_layer_indicator) {
- RGB rgb_layer = hsv_to_rgb( (HSV){ .h = g_config.layer_indicator.h,
- .s = g_config.layer_indicator.s,
- .v = g_config.layer_indicator.v } );
- switch (get_highest_layer(layer_state)) {
- case 0:
- if (g_config.layer_override_bl) {
- RGB_MATRIX_INDICATOR_SET_COLOR(g_config.layer_indicator_key, 0, 0, 0);
- }
- break;
- case 1:
- RGB_MATRIX_INDICATOR_SET_COLOR(g_config.layer_indicator_key, rgb_layer.r, rgb_layer.g, rgb_layer.b);
- break;
- default:
- // white
- RGB_MATRIX_INDICATOR_SET_COLOR(24, 128, 128, 128);
- break;
- }
- }
- return false;
-}
-
-#endif
#endif
diff --git a/keyboards/xelus/pachi/rgb/rev2/rev2.h b/keyboards/xelus/pachi/rgb/rev2/rev2.h
deleted file mode 100644
index fb0b8639d2..0000000000
--- a/keyboards/xelus/pachi/rgb/rev2/rev2.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright 2023 Harrison Chan (Xelus)
- *
- * 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 "quantum.h"
-
-#ifdef VIA_ENABLE
-// custom ID codes
-enum via_indicator_value {
- id_caps_lock_enable = 1,
- id_caps_lock_brightness,
- id_caps_lock_color,
- id_caps_lock_key,
- id_caps_lock_override,
- id_num_lock_enable,
- id_num_lock_brightness,
- id_num_lock_color,
- id_num_lock_key,
- id_num_lock_override,
- id_scroll_lock_enable,
- id_scroll_lock_brightness,
- id_scroll_lock_color,
- id_scroll_lock_key,
- id_scroll_lock_override,
- id_layer_indicator_enable,
- id_layer_indicator_brightness,
- id_layer_indicator_color,
- id_layer_indicator_key,
- id_layer_indicator_override
-};
-
-// struct to save things
-typedef struct {
- bool enable_caps_lock:1; // |
- bool enable_num_lock:1; // |
- bool enable_scroll_lock:1; // |
- bool enable_layer_indicator:1; // |
- bool caps_override_bl:1; // |
- bool num_override_bl:1; // |
- bool scroll_override_bl:1; // |
- bool layer_override_bl:1; // 1 byte
- HSV caps_lock_indicator; // 3 bytes
- HSV num_lock_indicator; // 3 bytes
- HSV scroll_lock_indicator; // 3 bytes
- HSV layer_indicator; // 3 bytes
- uint8_t caps_lock_key; // 1 byte
- uint8_t num_lock_key; // 1 byte
- uint8_t scroll_lock_key; // 1 byte
- uint8_t layer_indicator_key;// 1 byte
-} indicator_settings_config;
-// total 17 bytes
-
-// function declaration
-void indicator_config_set_value( uint8_t *data );
-void indicator_config_get_value( uint8_t *data );
-void indicator_config_save ( void );
-void _set_color(HSV *color, uint8_t *data);
-void _get_color(HSV *color, uint8_t *data);
-#endif
diff --git a/keyboards/yandrstudio/nz64/nz64.c b/keyboards/yandrstudio/nz64/nz64.c
index b5a53273df..928b0b5114 100644
--- a/keyboards/yandrstudio/nz64/nz64.c
+++ b/keyboards/yandrstudio/nz64/nz64.c
@@ -84,15 +84,23 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
void eeconfig_init_kb(void) {
kb_cums.raw = 0;
eeconfig_update_kb(kb_cums.raw);
+
+ eeconfig_init_user();
}
void keyboard_post_init_kb(void) {
kb_cums.underground_rgb_sw = eeconfig_read_kb();
+
+ keyboard_post_init_user();
}
#endif
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ if (!process_record_user(keycode, record)) {
+ return false;
+ }
+
switch(keycode) {
#ifdef RGB_MATRIX_ENABLE
case URGB_K:
diff --git a/keyboards/yandrstudio/nz67v2/nz67v2.c b/keyboards/yandrstudio/nz67v2/nz67v2.c
index 346556c25e..c3162dd961 100644
--- a/keyboards/yandrstudio/nz67v2/nz67v2.c
+++ b/keyboards/yandrstudio/nz67v2/nz67v2.c
@@ -85,10 +85,14 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
void eeconfig_init_kb(void) {
kb_cums.raw = 0;
eeconfig_update_kb(kb_cums.raw);
+
+ eeconfig_init_user();
}
void keyboard_post_init_kb(void) {
kb_cums.underground_rgb_sw = eeconfig_read_kb();
+
+ keyboard_post_init_user();
}
#endif
diff --git a/keyboards/yiancardesigns/barleycorn/barleycorn.c b/keyboards/yiancardesigns/barleycorn/barleycorn.c
deleted file mode 100644
index c73c1559c2..0000000000
--- a/keyboards/yiancardesigns/barleycorn/barleycorn.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2020 Yiancar
- *
- * 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 "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- // Set our LED pins as output
- gpio_set_pin_output(B5);
- gpio_set_pin_output(C0);
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- // gpio_write_pin sets the pin high for 1 and low for 0.
- // In this example the pins are inverted, setting
- // it low/0 turns it on, and high/1 turns the LED off.
- // This behavior depends on whether the LED is between the pin
- // and VCC or the pin and GND.
- gpio_write_pin(B5, led_state.caps_lock);
- gpio_write_pin(C0, led_state.num_lock);
- }
- return res;
-}
diff --git a/keyboards/yiancardesigns/barleycorn/keyboard.json b/keyboards/yiancardesigns/barleycorn/keyboard.json
index a1676840a5..cf041b96c5 100644
--- a/keyboards/yiancardesigns/barleycorn/keyboard.json
+++ b/keyboards/yiancardesigns/barleycorn/keyboard.json
@@ -19,6 +19,10 @@
"resync": true
}
},
+ "indicators": {
+ "caps_lock": "B5",
+ "num_lock": "C0"
+ },
"processor": "atmega328p",
"bootloader": "usbasploader",
"layouts": {
diff --git a/keyboards/ymdk/yd60mq/info.json b/keyboards/ymdk/yd60mq/info.json
index 4152ed6e07..1af04be687 100644
--- a/keyboards/ymdk/yd60mq/info.json
+++ b/keyboards/ymdk/yd60mq/info.json
@@ -32,6 +32,10 @@
"pin": "B7",
"levels": 5
},
+ "indicators": {
+ "caps_lock": "F4",
+ "on_state": 0
+ },
"ws2812": {
"pin": "E2"
},
diff --git a/keyboards/ymdk/yd60mq/yd60mq.c b/keyboards/ymdk/yd60mq/yd60mq.c
deleted file mode 100644
index 40c899c46f..0000000000
--- a/keyboards/ymdk/yd60mq/yd60mq.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include "quantum.h"
-
-__attribute__((weak))
-void matrix_init_kb(void){
- gpio_set_pin_output(F4);
- gpio_write_pin_high(F4);
-}
-
-__attribute__((weak))
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if (res) {
- // gpio_write_pin sets the pin high for 1 and low for 0.
- // In this example the pins are inverted, setting
- // it low/0 turns it on, and high/1 turns the LED off.
- // This behavior depends on whether the LED is between the pin
- // and VCC or the pin and GND.
- gpio_write_pin(F4, !led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/yushakobo/navpad/navpad_prefs.c b/keyboards/yushakobo/navpad/navpad_prefs.c
index 08b7464cf9..c7b3881621 100644
--- a/keyboards/yushakobo/navpad/navpad_prefs.c
+++ b/keyboards/yushakobo/navpad/navpad_prefs.c
@@ -37,10 +37,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
return true;
}
-bool led_update_kb(led_t led_state) {
- return led_update_user(led_state);
-}
-
#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }